我有一个数据帧数据:
Data <- data.frame(A=sample(1:7),B=c(5,5,5,6,6,6,6),C=c(1,2,2,3,3,4,5))
A B C
1 6 5 1
2 7 5 2
3 4 5 2
4 2 6 3
5 1 6 3
6 5 6 4
7 3 6 5
我试图从每个列中提取唯一值到data.frame . 每列具有不同的唯一值集和数量 .
我正在寻找类似的东西:
A 1 2 3 4 5 6 7
B 5 6 NA NA NA NA NA
C 1 2 3 4 5 NA NA
我能够遍历它并得到一个包含信息的列表(我尝试使用列表,因为它们的长度不同)
vars <- c('A','B','C')
mylist = vector("list",length(vars))
for(i in 1: length(vars)){
mylist[[i]] <- c( names(table( Data[ , vars[i] ] )))
}
如何将信息导入data.frame,理想情况下没有循环?谢谢!
2 回答
lapply()
就足够了 . 这是我使用的技巧 .首先,我们遍历
Data
的列以查找所有唯一值 . 然后我们迭代它,使用length<-
将每个元素的长度扩展到xx
的最长元素的长度 . 然后我们将它们整合到一个数据框中 .这是一个可能的
data.table
解决方案