R:基于字符串访问对象字段

标签 r

在 R 中安排数据进行处理时,通常需要完成一些琐碎的转换。

考虑以下因素:

  1. 我想访问对象 some_setN 个成员
  2. 具体字段:someset$example1someset$example2、...、someset$exampleN
  3. 我打算根据这些字段的迭代获得一个新字段。例如,映射 N 个二进制字段 ∋ ∃ ℕε[0,N]

直观上,使用这样的东西是有意义的:

for (i in 1:N ) {
   doSomething( get(paste0("someset$example",i,sep='')) )
}

但是这会产生:找不到对象'someset$example1'

当然,在控制台中输入 someset$example1 确实会产生正确的值。

引出一个问题,如果 get(str) 是我们访问对象的方式,那么我们如何访问对象的字段?

最佳答案

尝试使用 [[[ 而不是 $

for(i in 1:N){ print(mean(someset[[paste0('example', i)]]))}
#[1] 3
#[1] 8
#[1] 13

注意:根据问题的不同,您可能不需要 for 循环。对于上述情况,使用 colMeans 会更容易。

如果“someset”是一个字符串

Var <- "someset"
for(i in 1:N){ print(mean(get(Var)[[paste0('example', i)]]))}
#[1] 3
#[1] 8
#[1] 13

数据

someset <- data.frame(example1=1:5, example2=6:10, example3=11:15)
N <- ncol(someset)

关于R:基于字符串访问对象字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29788318/

相关文章:

r - "missing value where TRUE/FALSE needed"错误 vcd::mosaic

r - 我可以将屏幕上的绘图写入文件吗?

r - 如何计算R中每个组与初始值的差异?

r - 在R中每2页将PDF文件拆分为多个文件

R plot.gam 错误 "Error in 1:object$nsdf : argument of length 0"

r - r-ggplot2-突出显示选定的点和奇怪的行为

r - 更改数字格式,数据集中的格式错误

r - 连接绘图标签列表

r - R 中的 summary() 函数存在问题

r - 基本包所需的最低 R 版本?