【问题标题】:What is the purpose of this trailing comma in R?R中这个尾随逗号的目的是什么?
【发布时间】:2013-06-11 19:45:02
【问题描述】:

为什么第一行有效而第二行无效?我在文档中找不到有关如何使用 which 来选择数据的原因,尽管我偶然发现我需要一个逗号。

sigData <- data[which(abs(data$wc2) > 3*wc2_sd),]


sigData <- data[which(abs(data$wc2) > 3*wc2_sd)]

【问题讨论】:

    标签: r


    【解决方案1】:

    第一行的尾随逗号表示您正在按行进行子集(记住[ 是一个表示子集的函数)

    第二行中缺少尾随逗号表示您正在按列进行子集化。第二行相当于在括号内使用前导逗号。

    sigData <- data[, which(abs(data$wc2) > 3*wc2_sd)]
    

    【讨论】:

    • 仅当您对数据框进行操作时。通常不带逗号的子集意味着您将数据索引为平面向量:即m &lt;- matrix(c(1,2,3,4), 2, 2); m[3] 会给您第三个元素,就好像矩阵是一个向量
    • 我不确定这是否正确,即使在 DataFrame 的上下文中也是如此。见:test = data.frame(matrix(seq1:6),2) &gt;&gt;&gt; typeof(test[c(1)]) [1] "list" &gt;&gt;&gt; typeof(test[,c(1)]) [1] "integer"
    • 那么以下助记符是否安全,“假设数据框子集作为数据框名称[行,列]的网格工作?”
    猜你喜欢
    • 1970-01-01
    • 2013-04-08
    • 2017-12-26
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多