使用for循环从不同列创建变量

时间:2017-08-10 13:22:39

标签: r variables

我有一个数据框,使用excel导入库(readxl)。它包含长列数据,每列都有自己的列标题。现在我需要在新变量中存储特定值。我将列标题存储在矢量"标题"并且想要从特定行(例如151)中提取某些值并将其存储在新变量中。

我尝试使用下面的代码。我是R的新人,尝试了很多但都失败了......

example <- data.frame(c('N 1','N 2'), c(50, 60), c(70, 80))
titles <- c('N 1', 'N 2')
for (i in titles) {
  (paste("nkorrigiert",i)) <- as.numeric(example[[paste(i)]][3])
}
dput(head(example))

得到这个

  

Fehler in(paste(&#34; nkorrigiert&#34;,i))&lt; - as.numeric(example [[paste(i)]] [3]):     Ziel der Zuweisung expandiert zu keinem Sprachobjekt

> dput(head(example))

structure(list(c..N.1....N.2.. = structure(1:2, .Label = c("N 1", 
"N 2"), class = "factor"), c.50..60. = c(50, 60), c.70..80. = c(70, 
80)), .Names = c("c..N.1....N.2..", "c.50..60.", "c.70..80."),
row.names = 1:2, class = "data.frame")

我做错了什么?

2 个答案:

答案 0 :(得分:0)

您可以使用assign命令

    example <- data.frame(c('N 1','N 2'), c(50, 60), c(70, 80))
titles <- c('N 1', 'N 2')
for (i in titles) {
  assign(paste("nkorrigiert",i),  as.numeric(example[[paste(i)]][3])) 
}
dput(head(example))

R不明白你想要创建一个新变量

答案 1 :(得分:0)

在您的帮助和@lmo建议的帖子后,我能够解决它。感谢你们! :d

现在我的第一个代码几乎正在运行,是的!使用此代码在foor循环下可能

as.numeric(assign(paste("nkorrigiert",i), example[3, i]))

现在我只需要找出如何用for循环中存储在变量名中的值来计算!:D

一切顺利,塞巴斯蒂安