【发布时间】:2019-10-05 20:03:34
【问题描述】:
我有一个 cbind 中的 2 个 data.frames,称为 DATA。使用 BASE R,我想知道如何提取 cbind 中类似命名的变量 DATA 并将它们存储为列表?
对于下面的示例,我希望所有变量 AAs 和 DATA 中的所有变量 BBs 都单独 cbinded 并存储为列表?
注意:名称可以是任何东西,变量的数量可以是任何数字。高度赞赏函数(al)解决方案。
注意:假设我们无法访问r,唯一的输入是DATA。
r <- list(
data.frame(Name = rep("Jacob", 6),
X = c(2,2,1,1,NA, NA),
Y = c(1,1,1,2,1,NA),
Z = rep(3, 6),
out = rep(1, 6)),
data.frame(Name = rep("Jon", 6),
X = c(1,NA,3,1,NA,NA),
Y = c(1,1,1,2,NA,NA),
Z = rep(2, 6),
out = rep(1, 6)),
data.frame(Name = rep("Jon", 6),
X = c(1,NA,3,1,NA,NA),
Y = c(1,1,1,2,2,NA),
Z = rep(2, 6),
out = rep(2, 6)),
data.frame(Name = rep("Jim", 6),
X = c(1,NA,3,1,NA,NA),
Y = c(1,1,1,2,2,NA),
Z = rep(2, 6),
out = rep(1, 6)))
DATA <- do.call(cbind, r) ## DATA: cbind of two data.frames
【问题讨论】:
-
@RonakShah,问题是如何捕获 DATA 中的常见 colnames。 Arun,建议使用:
tbl <- table(names(DATA)); nm1 <- names(which(tbl==max(tbl)))。但是这个策略会失败,例如如果 DATA 是这样的:r <- list( data.frame( AA = c(2,2,1,1,3,2), BB = c(1,1,1,2,2,NA), CC = 1:6), data.frame( AA = c(1,NA,3,1,3,2), BB = c(1,1,1,2,2,2)), data.frame( CC = c(1,NA,3,1,3,2), AA = c(1,1,1,2,2,2), BB = 0:5) ); DATA <- do.call(cbind, r)。 -
@akrun, Arun, my question there 与您的答案有关。假设我们想在下面的
lapply调用之后压缩不变的变量。我们怎么能在这里做到这一点? -
@Reza 不是你想要的答案
-
@Reza 我更新了帖子。可能是我的想法不同
-
@Reza 如果您需要更多说明,请提出另一个问题
标签: r list function loops dataframe