2014-06-28 79 views
1

我有类似下面一个数据帧:[R数据框中列出

v1 v2 v3 v4 v5 
a a1 a2 a3 a4 
b b1 b2 
c c1 c2 c3 

我想这是下面转换为列表。

lista <- list(base="a", alts=c("a1","a2","a3","a4"))<br> 
listb <- list(base="b", alts=c("b1","b2"))<br> 
listb <- list(base="c", alts=c("c1","c2","c3")) 

我已经看了看贴在这里解决方案,并尝试了一些建议,但没有什么工作?1 任何帮助将是巨大的!我还是新的R - 干杯

回答

4

如果df包含您的数据帧,你可以尝试这样的:

l <- lapply(as.data.frame(t(df), stringsAsFactors = FALSE), 
      function(x) { 
       x <- unname(x) 
       list(base = x[1], alts = x[-1]) 
       }) 
names(l) <- paste0("list", df[, 1]) 
list2env(l, envir = .GlobalEnv) 
lista 
# $base 
# [1] "a" 
# 
# $alts 
# [1] "a1" "a2" "a3" "a4" 
+0

感谢lukeA,测试了我的实时数据和工程100%。我做了一些调整来整合特定更改,但非常感谢! – RUser