r - 将循环内的行名分配给构造的变量名称

标签 r loops assign names

我正在循环中创建数据框。数据框的名称应该是名称和数字的组合(循环迭代)。我为此使用分配功能并且有效。我还想为数据框的行分配名称。我尝试了两种方法,但收到错误消息“赋值目标扩展到非语言对象”和“仅第一个元素用作变量名”。下面是我正在尝试做的一个可重现的例子。

rows<-c("a","b")
df<-data.frame(var1=c(1,2),var2=c(10,20))
for (n in 1:2){
  assign  (paste("data",n,sep="_"),df)
  rownames(get(paste("data",n,sep="_")))<-rows        # it doesn't work
  assign(rownames(get(paste("data",n,sep="_"))),rows) # it doesn't work
}

我想知道为什么它不起作用以及如何解决它。我发现类似的话题 thisthis ,但我无法解决我的案子。谢谢。

最佳答案

根据Roland的评论,我得出了这个解决方案:

rows<-c("a","b")
df<-data.frame(var1=c(1,2),var2=c(10,20))
dfs<-list()
for (n in 1:2){
  dfs[[n]]<-df
  rownames(dfs[[n]])<-rows
}

列表是关键!

关于r - 将循环内的行名分配给构造的变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26682231/

相关文章:

删除 stat_密度_2d(geom = 'point' ) 中密度为 0(无数据)的点

r - 在 ggplot 上创建带有比例的条形图

javascript - 如何使用数组显示循环中的文本

java - 制作 Math.pow() 方法的副本

javascript - React Typescript 映射循环接口(interface)错误

java - 实例化和声明分开

c++ - 想要分配 std::string 但编译器认为是 bool

r - 使用gather()将两组(或更多)列收集成两个(或更多)键值对

c++ - 如何有一个 vector 的复制构造函数?

css - 在 Shiny 按钮上应用 2 种不同的 CSS 样式