如何连接列值并在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 Country

1 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_Country

1 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 Rank

1 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_Rank

1    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

回到顶部