在 R 数据框中组合用连字符分隔的两列的值。
要组合R数据框中用连字符分隔的两列的值,我们可以使用apply函数。
例如,如果我们有一个名为df的数据框,它只包含两列X和Y,那么我们可以使用下面给出的以下命令组合X和Y中的值-
df$X_Y<-apply(df,1,paste,collapse="-")
示例1
考虑下面给出的数据框-
Age<-sample(20:50,20) Height<-sample(130:200,20) df1<-data.frame(Age,Height) df1
创建了以下数据框
Age Height 1 22 147 2 37 138 3 28 184 4 40 154 5 32 193 6 20 135 7 47 185 8 27 198 9 46 156 10 29 170 11 44 140 12 43 167 13 23 182 14 49 171 15 31 150 16 25 148 17 21 180 18 45 169 19 39 179 20 36 133
要将上面创建的数据框中用连字符分隔的df1中两列的值组合起来,请将以下代码添加到上面的代码段中-
Age<-sample(20:50,20) Height<-sample(130:200,20) df1<-data.frame(Age,Height) df1$Age_Height<-apply(df1,1,paste,collapse="-") df1输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
Age Height Age_Height 1 22 147 22-147 2 37 138 37-138 3 28 184 28-184 4 40 154 40-154 5 32 193 32-193 6 20 135 20-135 7 47 185 47-185 8 27 198 27-198 9 46 156 46-156 10 29 170 29-170 11 44 140 44-140 12 43 167 43-167 13 23 182 23-182 14 49 171 49-171 15 31 150 31-150 16 25 148 25-148 17 21 180 21-180 18 45 169 45-169 19 39 179 39-179 20 36 133 36-133
示例2
以下代码段创建了一个示例数据框-
Group<-sample(c("First","Second","Third"),20,replace=TRUE) Rate<-sample(1:10,20,replace=TRUE) df2<-data.frame(Group,Rate) df2输出结果
如果您执行上面给定的代码段,它会生成以下输出-
Group Rate 1 First 8 2 Second 4 3 First 5 4 Second 7 5 Second 4 6 Third 7 7 Second 9 8 Second 7 9 First 7 10 Second 3 11 First 10 12 Second 9 13 First 7 14 First 8 15 Second 1 16 Second 8 17 Second 5 18 Third 10 19 Second 4 20 First 5
要将上面创建的数据框中用连字符分隔的df2中两列的值组合起来,请将以下代码添加到上面的代码段中-
Group<-sample(c("First","Second","Third"),20,replace=TRUE) Rate<-sample(1:10,20,replace=TRUE) df2<-data.frame(Group,Rate) df2$Group_Rate<-apply(df2,1,paste,collapse="-") df2输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
Group Rate Group_Rate 1 First 8 First- 8 2 Second 4 Second- 4 3 First 5 First- 5 4 Second 7 Second- 7 5 Second 4 Second- 4 6 Third 7 Third- 7 7 Second 9 Second- 9 8 Second 7 Second- 7 9 First 7 First- 7 10 Second 3 Second- 3 11 First 10 First-10 12 Second 9 Second- 9 13 First 7 First- 7 14 First 8 First- 8 15 Second 1 Second- 1 16 Second 8 Second- 8 17 Second 5 Second- 5 18 Third 10 Third- 10 19 Second 4 Second- 4 20 First 5 First- 5