在 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
广告