通过R中的循环将新列添加到data.frame

通过R中的循环将新列添加到data.frame,r,dataframe,R,Dataframe,我有n个data.frame我想在所有data.frame中添加列 a <- data.frame(1:4,5:8) b <- data.frame(1:4, 5:8) test=ls() for (j in test){ j = cbind(get(j),IssueType=j) } 因为它将所有数据分配给j,而不是a,b 如前所述,最好将相关数据保存在列表结构中。如果您的全局环境中已经有data.frames,并且您希望将其放入列表中,则可以使用: dflist <

我有n个data.frame我想在所有data.frame中添加列

a <- data.frame(1:4,5:8) 
b <- data.frame(1:4, 5:8)
test=ls()

for (j in test){
  j = cbind(get(j),IssueType=j)
}

因为它将所有数据分配给
j
,而不是
a
b

如前所述,最好将相关数据保存在列表结构中。如果您的全局环境中已经有data.frames,并且您希望将其放入列表中,则可以使用:

dflist <- Filter(is.data.frame, as.list(.GlobalEnv))
因此,您可以轻松地通过键入(例如)来选择所需的数据

dflist[["a"]]
如果仍要创建额外的列,可以这样做:

dflist <- Map(function(df, x) {df$IssueType <- x; df}, dflist, names(dflist))
将来,您可以从头开始在列表中创建数据,即

dflist <- list(
  a = data.frame(1:4,5:8) 
  b = data.frame(1:4, 5:8)
)

dflist如前所述,最好将相关数据保存在列表结构中。如果您的全局环境中已经有data.frames,并且您希望将其放入列表中,则可以使用:

dflist <- Filter(is.data.frame, as.list(.GlobalEnv))
因此,您可以轻松地通过键入(例如)来选择所需的数据

dflist[["a"]]
如果仍要创建额外的列,可以这样做:

dflist <- Map(function(df, x) {df$IssueType <- x; df}, dflist, names(dflist))
将来,您可以从头开始在列表中创建数据,即

dflist <- list(
  a = data.frame(1:4,5:8) 
  b = data.frame(1:4, 5:8)
)

dflist创建数据列表。请执行以下操作:


a要创建数据帧列表,请执行以下操作:

awooo-wooo

这是问题的答案 由@docendo discimus帮助

创建数据帧

awooo-wooo

这是问题的答案 由@docendo discimus帮助

创建数据帧



a R中的标准方法是将所有相关的data.frames保存在
列表中
,并使用
lappy
循环所有这些帧并创建新的列扫描您可以用示例代码帮助我是。新的列IssueType应该包含什么?简单的
a
b
(数据帧的名称)?是的,我试图将数据帧名称设置为new column>a X1.4 X5.8 Issu 1 1 5 a 2 2 6 a 3 3 7 a 4 4 8 a类似的内容R中的标准方法是将所有相关的数据帧保存在
列表中,并使用
lappy
循环所有数据帧并创建新的列扫描您可以帮助我样本代码是。新的列IssueType应该包含什么?简单的
a
b
(数据帧的名称)?是的,我试图将数据帧名称设置为新列>X1.4 X5.8 Issu 1 1 5 a 2 2 6 a 3 3 7 a 4 4 8 a类似于thid>X1.4 X5.8 1 5 2 6 3 3 4 8我需要添加表示我正在查找的数据的新列。帧名称示例输出>aX1.4 X5.8 Issu 1 1 5 a 2 2 6 a 3 3 7 a 4 4 8 a>a X1.4 X5.8 1 1 5 2 6 3 7 4 8我需要添加表示我正在寻找的数据的新列。帧名称示例输出>a X1.4 X5.8 Issu 1 5 a 2 6 a 3 3 7 a 4 8 a>a X1.4 X5.8 1 1 5 2 6 3 7 4 8我需要添加表示我正在查找的data.frame name示例输出>a X1.4 X5.8 Issu 1 1 5 a 2 6 a 3 7 a 4 4 8的新列a@PraveenRKaruppannan,这就是我在回答中所证明的。。你检查过了吗?这工作很有魅力,但现在我该怎么分配它们呢up@PraveenRKaruppannan,你为什么要这么做?把他们列在一张单子上就行了。正如我所说的那样,这将是一种更有效的做事方式。如果你坚持把它们分别放回全球环境中,检查我必须将它们重新组合为单个数据集,需要将其推入DB>a X1.4 X5.8 1 1 5 2 6 3 3 7 4 4 8我需要添加表示数据的新列。我正在查找的帧名称示例输出>a X1.4 X5.8 ISU 1 1 5 a 2 6 a 3 3 7 a 4 4 8a@PraveenRKaruppannan,这就是我在回答中所证明的。。你检查过了吗?这工作很有魅力,但现在我该怎么分配它们呢up@PraveenRKaruppannan,你为什么要这么做?把他们列在一张单子上就行了。正如我所说的那样,这将是一种更有效的做事方式。如果您坚持将它们分别放回全局环境中,请检查我必须将它们重新组合到单个数据集中,这些数据集需要推送到数据库中