R将data.frame转换为按列列出

时间:2016-06-05 15:08:10

标签: r list dataframe

我想使用基本R函数将data.frame转换为data.frames列表并保持第一列常量。例如,我想将DF拆分为三个data.frames列表,每个data.frames包含第一列。也就是说,我想最终得到名为LONG的列表,而不必单独输出每个列表元素。谢谢。

DF <- data.frame(OBS=1:10,HEIGHT=rnorm(10),WEIGHT=rnorm(10),TEMP=rnorm(10))
DF

LONG <- list(HEIGHT = DF[c("OBS", "HEIGHT")],
             WEIGHT = DF[c("OBS", "WEIGHT")],
             TEMP   = DF[c("OBS", "TEMP"  )])

LONG

SHORT <- as.list(DF)
SHORT

SPLIT <- split(DF, col(DF))

1 个答案:

答案 0 :(得分:9)

我们可以循环遍历'{1}}'DF'除了第一个names,第一列包含来自cbind的'DF'子集。

names

或另一种选择是

setNames(lapply(names(DF)[-1], function(x) cbind(DF[1], DF[x])), names(DF)[-1])