如何在r中将一列划分为两列
我有这样一个数据框:如何在r中将一列划分为两列,r,R,我有这样一个数据框: v1 v2 v3 1 A ddd 5 2 A ddd 7 3 B ccc 8 4 B ccc 8 5 C aaa 9 6 C aaa 11 但我希望它是这样的: v1 v2 v3.1 v3.2 1 A ddd 5 7 2 B ccc 8 8 3 C aaa 9 11 谢谢你的帮助 dfnew您可以使用dplyr和tidyr使用类似的东西: dfnew <- a
v1 v2 v3
1 A ddd 5
2 A ddd 7
3 B ccc 8
4 B ccc 8
5 C aaa 9
6 C aaa 11
但我希望它是这样的:
v1 v2 v3.1 v3.2
1 A ddd 5 7
2 B ccc 8 8
3 C aaa 9 11
谢谢你的帮助
dfnew您可以使用dplyr和tidyr使用类似的东西:
dfnew <- aggregate(v3 ~ v1 + v2, df, I)
dfnew[order(dfnew$v1),]
v1 v2 v3.1 v3.2
3 A ddd 5 7
2 B ccc 8 8
1 C aaa 9 11
df <- read.table(text = "
v1 v2 v3
1 A ddd 5
2 A ddd 7
3 B ccc 8
4 B ccc 8
5 C aaa 9
6 C aaa 11", h = T)
library(tidyr)
library(dplyr)
df1 %>%
group_by(v1) %>%
mutate(new = paste("v3", row_number(), sep = ".")) %>%
spread(new, v3)
# A tibble: 3 x 4
# Groups: v1 [3]
v1 v2 v3.1 v3.2
<chr> <chr> <int> <int>
1 A ddd 5 7
2 B ccc 8 8
3 C aaa 9 11
library(tidyr)
图书馆(dplyr)
df1%>%
分组依据(v1)%>%
突变(新=粘贴(“v3”,行号(),sep=“.”)”)%>%
排列(新,v3)
#一个tibble:3x4
#分组:v1[3]
v1.1 v3.2
1 ddd 5 7
2 B ccc 8
3 C aaa 9 11
数据:
df1仅当您的数据按V2
排序并且V2
的每个值重复相同次数(此处为2次)时,此操作才有效
您是否尝试过并失败过?相关:
df1 <- structure(list(v1 = c("A", "A", "B", "B", "C", "C"), v2 = c("ddd",
"ddd", "ccc", "ccc", "aaa", "aaa"), v3 = c(5L, 7L, 8L, 8L, 9L,
11L)), class = "data.frame", row.names = c("1", "2", "3", "4",
"5", "6"))
cbind(df[seq(1, nrow(df), by=2),], df[seq(2, (nrow(df)), by=2),])[,c(4,5)*-1]
v1 v2 v3 v3.1
1 A ddd 5 7
3 B ccc 8 8
5 C aaa 9 11