r在lappy函数中创建包含对象名称的列
我想创建一个列,其中包含Lappy函数中的对象名称,作为代理,我将其称为name.of.x.as.strig.function(),不幸的是,我不知道如何执行此操作,可能是assign、do.call和paste的组合。但到目前为止,使用这个函数只会让我陷入更深的麻烦,我很确定有一个更像R的解决方案r在lappy函数中创建包含对象名称的列,r,lapply,R,Lapply,我想创建一个列,其中包含Lappy函数中的对象名称,作为代理,我将其称为name.of.x.as.strig.function(),不幸的是,我不知道如何执行此操作,可能是assign、do.call和paste的组合。但到目前为止,使用这个函数只会让我陷入更深的麻烦,我很确定有一个更像R的解决方案 # generates a list of dataframes, data <- list(data.frame(c(1,2),c(3,3)),data.frame(c(1,2),c(3,
# generates a list of dataframes,
data <- list(data.frame(c(1,2),c(3,3)),data.frame(c(1,2),c(3,3)),data.frame(c(1,2),c(3,3)),data.frame(c(1,2),c(3,3)))
# assigns names to dataframe
names(data) <- list("one","two", "tree", "four")
# subsets the second column into the object data.anova
data.anova <- lapply(data, function(x){x <- x[[2]];
return(matrix(x))})
非常感谢您的任何意见
搜索历史记录:函数以字符串形式检索对象名称,R获取Lappy内对象的名称…通过
数据的索引进行循环。anova
,并使用该函数获取数据和名称:
data.anova <- lapply(seq_along(data.anova), function(i){
x <- as.data.frame(data.anova[[i]])
x$id <- names(data.anova)[i]
return(x)})
循环遍历
data.anova的索引,并使用该索引获取数据和名称:
data.anova <- lapply(seq_along(data.anova), function(i){
x <- as.data.frame(data.anova[[i]])
x$id <- names(data.anova)[i]
return(x)})
是否您只是在寻找堆栈
stack(lapply(data, `[[`, 2))
# values ind
# 1 3 one
# 2 3 one
# 3 3 two
# 4 3 two
# 5 3 tree
# 6 3 tree
# 7 3 four
# 8 3 four
(或者,使用您最初的方法:stack(lappy)(数据,函数(x){x您是否只是在寻找stack
stack(lapply(data, `[[`, 2))
# values ind
# 1 3 one
# 2 3 one
# 3 3 two
# 4 3 two
# 5 3 tree
# 6 3 tree
# 7 3 four
# 8 3 four
(或者,使用您最初的方法:stack(lappy(数据,函数(x){x)我通常会做一些类似于lappy(名称(数据),函数(x)data.frame(ID=x,value=data[[x]]][[2]])
的事情,如果这是他们所追求的……完全相同的想法,那么+1:-)@阿南达马托,一如既往,有着清晰的答案!我通常会做一些更像lappy(名称(数据),函数(x)data.frame(ID=x,value=data[[x]][[2]])
的事情,如果这是他们想要的……完全相同的想法,尽管如此,+1:-)@AnandaMahto,一如既往,有着清晰的答案!
stack(lapply(data, `[[`, 2))
# values ind
# 1 3 one
# 2 3 one
# 3 3 two
# 4 3 two
# 5 3 tree
# 6 3 tree
# 7 3 four
# 8 3 four