在 R 数据框中合并用连字符分隔的两列的值。
r programmingserver side programmingprogramming
要在 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