Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
r在lappy函数中创建包含对象名称的列_R_Lapply - Fatal编程技术网

r在lappy函数中创建包含对象名称的列

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,

我想创建一个列,其中包含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,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