R-根据列的值将数据帧重新组织为多列
我需要重新组织我的dataframe intro多列(基于列“x”和“y”(忽略列“z”)的值):R-根据列的值将数据帧重新组织为多列,r,R,我需要重新组织我的dataframe intro多列(基于列“x”和“y”(忽略列“z”)的值): 像这样的东西 > library(reshape2) > dcast(dataframe, y~x, value.var = "y") y apple banana orange strawberry 1 a a <NA> <NA> <NA> 2 b b <NA> <NA>
像这样的东西
> library(reshape2)
> dcast(dataframe, y~x, value.var = "y")
y apple banana orange strawberry
1 a a <NA> <NA> <NA>
2 b b <NA> <NA> <NA>
3 c <NA> <NA> c <NA>
4 d d <NA> <NA> <NA>
5 e <NA> <NA> e <NA>
6 f <NA> <NA> f <NA>
7 g <NA> g <NA> <NA>
8 h <NA> h <NA> <NA>
9 i <NA> <NA> <NA> i
>库(2)
>dcast(数据帧,y~x,value.var=“y”)
苹果香蕉橙草莓
a
2b
3C
四维
5 e e
6f
7克
8小时
9 i i
您还可以创建一个简单的函数
max_val = 3 # Max number of rows your final dataframe will have
mdf = as.data.frame(matrix(nrow = max_val))[-1] # Create empty df
for (item in unique(df$x)) {
vals = df[df$x == item, ]$y
while (length(vals) != max_val){
vals = c(array(vals), NA)
}
n = names(mdf)
mdf = cbind(mdf, vals)
names(mdf) <- c(n, item)
}
> library(reshape2)
> dcast(dataframe, y~x, value.var = "y")
y apple banana orange strawberry
1 a a <NA> <NA> <NA>
2 b b <NA> <NA> <NA>
3 c <NA> <NA> c <NA>
4 d d <NA> <NA> <NA>
5 e <NA> <NA> e <NA>
6 f <NA> <NA> f <NA>
7 g <NA> g <NA> <NA>
8 h <NA> h <NA> <NA>
9 i <NA> <NA> <NA> i
max_val = 3 # Max number of rows your final dataframe will have
mdf = as.data.frame(matrix(nrow = max_val))[-1] # Create empty df
for (item in unique(df$x)) {
vals = df[df$x == item, ]$y
while (length(vals) != max_val){
vals = c(array(vals), NA)
}
n = names(mdf)
mdf = cbind(mdf, vals)
names(mdf) <- c(n, item)
}
apple orange banana strawberry
1 a c 7 9
2 d e 8 NA
3 b f NA NA