数据集有大量age.year
个变量:age.1990, age.1991, etc.
我有一个字符串值length(age.years)
的数组,表示那些age.years[1]
返回{{1}的变量等等。
我想搜索每个记录的"age.1990"
变量,以找到值age.year
。最终,如果60
等于60,则新变量age.1991[1]
将采用值Y.60[1]
。
如何使用数组中的字符串作为变量名来避免手动编写每个Y.1991[1]
变量? var.year
似乎不起作用。
Get()
答案 0 :(得分:1)
您可以使用括号中的粘贴来访问列,就像使用$。
一样big.data[paste0(age.years[1])]
此外,您只能使用数字来访问这样的列。
years <- c(1990:1992)
big.data[paste0("age.",years[1])]
循环将像这样工作。
for (iy in 1:length(years)){
big.data$Y.60 <- NA
big.data$Y.60 <- ifelse(big.data[paste0("age.",years[iy])] == 60, +
paste0("Y.",years[iy]),big.data$Y.60 )
}
如果我理解你的目的。
<强>更新强>
或者作者@jtd的替代答案,括号而不是粘贴。
for (iy in 1:length(age.years)) {
big.data$Y = ifelse(big.data[[age.years[iy]]] == 60,
big.data[[Y.years[iy]]],
big.data$Y
)
}