Q
R数据帧格式组
1
A
回答
4
df <- read.table(sep=" ", header=F, text="
ABC 2
ABC 4
ABC 6
DEF 10
DEF 20")
unstack(df, form=V2~V1)
# $ABC
# [1] 2 4 6
#
# $DEF
# [1] 10 20
unstack
在这种情况下产生一个list
作为列不具有相同的长度。在长度相同的情况下:
df <- read.table(sep=" ", header=F, text="
ABC 2
ABC 4
ABC 6
DEF 10
DEF 20
DEF 20")
t(unstack(df, form=V2~V1))
# [,1] [,2] [,3]
# ABC 2 4 6
# DEF 10 20 20
0
你想获得一个稀疏矩阵吗?您示例中的两行具有不同的长度。尝试函数产生一个列表:
mat<-cbind(
c("ABC","ABC","ABC","DEF","DEF"),
c(2,4,6,10,20)
)
count<-function(mat){
values<-unique(mat[,1])
outlist<-list()
for(v in values){
outlist[[v]]<-mat[mat[,1]==v,2]
}
return(outlist)
}
count(mat)
,这将给你这样的结果:
$ABC
[1] "2" "4" "6"
$DEF
[1] "10" "20"
2
嘛,有什么看法?他们是否想要为每个类别测量相同的东西?
因为每个类别的观察数量都不相同,所以您无法准确获取与发布的数据帧完全相同的数据。但是如果你给“DEF”添加一个“NA”,你可以做到这一点。
像这样:
ABC 2 4 6
DEF 10 20 NA
如果这是你想要的,你可以只使用reshape2的dcast
。
但是你必须命名意见:
library(reshape2)
df <- data.frame(obs =c(1:3, 1:2),
categories = c(rep("ABC", 3), rep("DEF",2)),
values=c(2,4,6,10,20), stringsAsFactors=FALSE)
df2 <- dcast(df, categories~obs)
df2
# categories 1 2 3
# 1 ABC 2 4 6
# 2 DEF 10 20 NA
+1
为'dcast'替代+1。请参阅[我的回答](http://stackoverflow.com/a/21248135/1270695)以获取“事后”创建“obs”列的方法。 – A5C1D2H2I1M1N2O1R2T1
1
要添加到您的选择:
这似乎是一个基本的“长广”重塑的问题,但它缺少一个“时间“变量。这很容易通过使用ave
重新创建一个:
ave(as.character(df$V1), df$V1, FUN = seq_along)
# [1] "1" "2" "3" "1" "2"
df$time <- ave(as.character(df$V1), df$V1, FUN = seq_along)
一旦你有一个“时间”变量,使用reshape
是非常简单的:
reshape(df, idvar="V1", timevar="time", direction = "wide")
# V1 V2.1 V2.2 V2.3
# 1 ABC 2 4 6
# 4 DEF 10 20 NA
相反,如果你想要一个list
,没有需要时间变量。只需使用split
:
split(df$V2, df$V1)
# $ABC
# [1] 2 4 6
#
# $DEF
# [1] 10 20
#
同样,如果你的数据是平衡的,split
加rbind
可以得到你所需要的。使用@lukeA的样本数据:
df <- read.table(sep=" ", header=F, text="
ABC 2
ABC 4
ABC 6
DEF 10
DEF 20
DEF 20")
do.call(rbind, split(df$V2, df$V1))
# [,1] [,2] [,3]
# ABC 2 4 6
# DEF 10 20 20
相关问题
- 1. R:格式数据帧摘要
- 2. R重组数据帧
- 3. R:将宽格式的数据帧隐藏成长格式
- 4. python数据帧写入R数据格式
- 5. R数据帧
- 6. R:数据帧
- 7. R根据组/子网格对数据帧进行汇总
- 8. R gsub删除模式并返回数据帧格式
- 9. R:将2D数据帧列表重组为一个数据帧
- 10. 格式在数据帧
- 11. R中的每小时组数据帧
- 12. 使用组由r中的数据帧
- 13. R量表和重组以数据帧
- 14. 在R数据帧的打印组名
- 15. R:在数据帧
- 16. 从R数据帧
- 17. R:从数据帧
- 18. R:在数据帧
- 19. R:据帧的组织,结构和子集数据帧
- 20. 如何将数据帧转换为JSON格式中的R
- 21. 在R中格式化一个数据帧
- 22. 将整个数据帧转换为标准标准格式R
- 23. 如何有R中闪亮的数据帧的条件格式?
- 24. 重新格式化R中的杂乱数据帧列
- 25. R中的1D数据帧转换为2D格式
- 26. 如何JSON格式的数据帧的列转换中的R
- 27. 如何在r中输出正确格式的数据帧?
- 28. 如何保持原班/格式时,转置数据帧[R
- 29. - [R变换数据帧装入篮格式
- 30. 将数据帧转换为R中的特定格式化JSON
如果列长度相同会怎样? – Harpreet