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