如何连接列值并在R数据框中创建新列?
有时我们想结合两列的列值来创建一个新列。当我们有一个可能与数字或任何其他类型的列组合在一起的唯一列时,通常使用此方法。同样,我们可以通过用差异字符分隔将要创建的列值来做到这一点。可以借助apply函数来完成。
示例
请看以下数据帧-
> ID<-1:20> Country<-
sample(c("Russia","USA","China","Canada","UK","India","Nepal"),20,replace=TRUE)
> df1<-data.frame(ID,Country)
> df1
输出结果
ID Country1 1 UK
2 2 UK
3 3 India
4 4 USA
5 5 USA
6 6 UK
7 7 Nepal
8 8 Russia
9 9 Nepal
10 10 China
11 11 UK
12 12 Nepal
13 13 Canada
14 14 USA
15 15 Russia
16 16 UK
17 17 China
18 18 USA
19 19 China
20 20 Russia
创建一个新的ID和Country列-
> df1$ID_with_Country<-apply(df1,1,paste,collapse="")> df1
输出结果
ID Country ID_with_Country1 1 UK 1UK
2 2 UK 2UK
3 3 India 3India
4 4 USA 4USA
5 5 USA 5USA
6 6 UK 6UK
7 7 Nepal 7Nepal
8 8 Russia 8Russia
9 9 Nepal 9Nepal
10 10 China 10China
11 11 UK 11UK
12 12 Nepal 12Nepal
13 13 Canada 13Canada
14 14 USA 14USA
15 15 Russia 15Russia
16 16 UK 16UK
17 17 China 17China
18 18 USA 18USA
19 19 China 19China
20 20 Russia 20Russia
让我们看另一个例子-
示例
> Class<-LETTERS[1:20]> Rank<-sample(1:10,20,replace=TRUE)
> df2<-data.frame(Class,Rank)
> df2
输出结果
Class Rank1 A 2
2 B 4
3 C 4
4 D 6
5 E 7
6 F 10
7 G 10
8 H 5
9 I 9
10 J 6
11 K 1
12 L 8
13 M 10
14 N 7
15 O 5
16 P 7
17 Q 6
18 R 1
19 S 10
20 T 3
> df2$Class_Rank<-apply(df2,1,paste,collapse="_")> df2
输出结果
Class Rank Class_Rank1 A 2 A_ 2
2 B 4 B_ 4
3 C 4 C_ 4
4 D 6 D_ 6
5 E 7 E_ 7
6 F 10 F_10
7 G 10 G_10
8 H 5 H_ 5
9 I 9 I_ 9
10 J 6 J_ 6
11 K 1 K_ 1
12 L 8 L_ 8
13 M 10 M_10
14 N 7 N_ 7
15 O 5 O_ 5
16 P 7 P_ 7
17 Q 6 Q_ 6
18 R 1 R_ 1
19 S 10 S_10
20 T 3 T_ 3
以上是 如何连接列值并在R数据框中创建新列? 的全部内容, 来源链接: utcz.com/z/343434.html