我想使用基本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))
答案 0 :(得分:9)
我们可以循环遍历'{1}}'DF'除了第一个names
,第一列包含来自cbind
的'DF'子集。
names
或另一种选择是
setNames(lapply(names(DF)[-1], function(x) cbind(DF[1], DF[x])), names(DF)[-1])