使用字符串中的变量名称访问变量值,R

t

介绍

数据集包含大量age.year变量:age.1990, age.1991, etc.我有一个字符串值数组,用于length(age.years)表示这些变量,例如age.years[1]return"age.1990"等。

需要

我想搜索age.year每个记录变量以找到值60最终,如果age.1991[1]等于60,则新变量Y.60[1]将采用值Y.1991[1]

问题

如何使用数组中的字符串作为变量名,以避免var.year手工编码每个变量?Get()似乎不起作用。

# EXAMPLE CODE
big.data= data.frame(ID= c(1,2), age.1990= c(60, NA), 
  age.1991= c(61, 60), age.1992= c(62, 61), Y.1990= c(100, 120), 
  Y.1991= c(NA, 125), Y.1992= c(115, 130), Y.60= c(NA, NA) )

big.data
#   ID age.1990 age.1991 age.1992 Y.1990 Y.1991 Y.1992 Y.60
# 1  1       60       61       62    100     NA    115   NA
# 2  2       NA       60       61    120    125    130   NA 

age.years = names(big.data)[2:4]
Y.years = names(big.data)[5:7]
age.years[1]= paste0("big.data$", age.years[1])
age.years[1]
# [1] "big.data$age.1990"
summary(age.years[1])
# Length     Class      Mode 
#    1 character character 
summary(get(age.years[1]))
# Error in get(age.years[1]) : object 'big.data$age.1990' not found
# Why not found??
us88

您可以使用粘贴在方括号中来访问列,就像使用$一样。

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
              )
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用包含.Net中变量名称的字符串访问方法的局部变量值

来自分类Dev

将字符串中的变量名称替换为变量值[R]

来自分类Dev

如何使用字符串获取变量值

来自分类Dev

sh:通过字符串名称访问变量值

来自分类Dev

使用JavaScript在字符串中附加变量值

来自分类Dev

使用方案中的字符串获取变量值

来自分类Dev

在Python中使用其名称(Python字符串)在枚举中获取C变量值

来自分类Dev

使用字典中的变量值执行以字符串形式编写的数学表达式(python)

来自分类Dev

访问以参考地址为字符串的变量值

来自分类Dev

PHP在变量名称中使用变量值

来自分类Dev

如何将字符串变量值转换为变量名

来自分类Dev

如何在Java中调用名称为字符串变量值的方法?

来自分类Dev

在 C# 中设置名称通过字符串传递的变量值

来自分类Dev

使用名称中的变量值访问redux存储

来自分类Dev

动态评估字符串中的变量值

来自分类Dev

变量值未在字符串中更新

来自分类Dev

字符串变量值作为类型中的属性

来自分类Dev

在java中获取字符串的变量值

来自分类Dev

使用字符串内容为其他变量名称的另一个变量调用变量

来自分类Dev

kdb +:使用字符串作为变量名

来自分类Dev

使用字符串作为变量名

来自分类Dev

kdb +:使用字符串作为变量名

来自分类Dev

使用字符串作为变量名

来自分类Dev

变量名称中的变量字符串

来自分类Dev

使用bash在变量名中的变量值

来自分类Dev

如何使用 sed 从字符串中删除变量值

来自分类Dev

如何在公式中将字符串名称转换为R中的变量名称?

来自分类Dev

PHP:在字符串变量中交换占位符以获取相应的已定义变量值

来自分类Dev

python,从字符串和变量连接中获取变量值

Related 相关文章

  1. 1

    使用包含.Net中变量名称的字符串访问方法的局部变量值

  2. 2

    将字符串中的变量名称替换为变量值[R]

  3. 3

    如何使用字符串获取变量值

  4. 4

    sh:通过字符串名称访问变量值

  5. 5

    使用JavaScript在字符串中附加变量值

  6. 6

    使用方案中的字符串获取变量值

  7. 7

    在Python中使用其名称(Python字符串)在枚举中获取C变量值

  8. 8

    使用字典中的变量值执行以字符串形式编写的数学表达式(python)

  9. 9

    访问以参考地址为字符串的变量值

  10. 10

    PHP在变量名称中使用变量值

  11. 11

    如何将字符串变量值转换为变量名

  12. 12

    如何在Java中调用名称为字符串变量值的方法?

  13. 13

    在 C# 中设置名称通过字符串传递的变量值

  14. 14

    使用名称中的变量值访问redux存储

  15. 15

    动态评估字符串中的变量值

  16. 16

    变量值未在字符串中更新

  17. 17

    字符串变量值作为类型中的属性

  18. 18

    在java中获取字符串的变量值

  19. 19

    使用字符串内容为其他变量名称的另一个变量调用变量

  20. 20

    kdb +:使用字符串作为变量名

  21. 21

    使用字符串作为变量名

  22. 22

    kdb +:使用字符串作为变量名

  23. 23

    使用字符串作为变量名

  24. 24

    变量名称中的变量字符串

  25. 25

    使用bash在变量名中的变量值

  26. 26

    如何使用 sed 从字符串中删除变量值

  27. 27

    如何在公式中将字符串名称转换为R中的变量名称?

  28. 28

    PHP:在字符串变量中交换占位符以获取相应的已定义变量值

  29. 29

    python,从字符串和变量连接中获取变量值

热门标签

归档