R 查询 '$' ()

标签 r

我创建了一个数据框并试图访问数据框中的列。代码如下图

df <- data.frame(n = c('A','B','C'),
                 mark_1 = c(23,25, 17),
                 mark_2 = c(45,46,50))

j <- paste('mark',1,sep="_")
j

f <- '$'(df,j)
summary(f)

n <- '$'(df,"mark_1")
summary(n)

当我运行这段代码时,这就是我得到的结果

    > j <- paste('mark',1,sep="_")
    > j
    [1] "mark_1"
    > f <- '$'(df,j)
    > summary(f)
    Length  Class   Mode 
         0   NULL   NULL 
    > n <- '$'(df,"mark_1")
    > summary(n)
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      17.00   20.00   23.00   21.67   24.00   25.00 
    > 

为什么 summary(f) 不起作用? j 正确连接到“mark_1”。那为什么会报错呢?

提前致谢

最佳答案

@TylerRinker 向您展示了该怎么做。

...但是您不能使用 '$'(df,j) 的原因是美元运算符按字面意思使用第二个参数。

...所以 '$'(df,mark_1) 可以正常工作。但是您根本无法将变量传递给它。这就是 [[[ 的作用:

df[,j]  # The j'th column
df[[j]] # Pretend df is a list of columns and get the j'th element

关于R 查询 '$' (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10546826/

相关文章:

r - 为什么这个简单的 ave 函数不起作用

r - 使用 R 中具有 NA 值的线性模型进行预测

使用 SpatRaster 周围的缓冲区对 SpatVect(点)进行栅格化

r - 什么是模型矩阵/设计矩阵

r - 为什么 `x` 现在是以下 R 代码中这五个 Gamma 分布的混合?

r - 省略行错误

r - flextable:如何合并某些列的重复值的行

r - Shiny 中的 tryCatch 错误处理

r - 如何将段边界映射到 R 中引用文件中的最近位置

r - 如何在 tibble 中的多行(按行)上改变 NA