在 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

相关文章