【问题标题】:extract a column if using %in% operator in R+如果在 R 中使用 %in% 运算符,则提取一列
【发布时间】:2013-06-18 13:09:02
【问题描述】:

我有两个数据集 - testdata(744 条记录),状态和平均值为两列,extractdata(19 条记录),状态列在 R. 我想从 testdata 中为状态列中存在的所有状态选择“平均列”提取数据。请建议一个 R 代码。谢谢 像这样 -

testdata            extractdata

state  average      state
CA    2345.67       AB
LA     4587.90      AE
TX     8521.12      TN 
...so on            KL
                    ..so on 

我试过了-

exavg=subset(testdata,(ex$State)%in%(testdata$State),select=c(Average))

但没用。

【问题讨论】:

  • -1 表示没有努力自己解决这个问题。
  • 并且说 but didn't work 没有显示任何错误消息或其他输出。这有什么用?
  • @SimonO101 没有工作我的意思是它没有给出所需的输出而不是抛出错误消息。它没有检查条件,结果是所有州的平均值。

标签: r subset


【解决方案1】:

你可以这样做:

exavg <- testdata[testdata$State %in% ex$State, "Average"]

注意:

  1. 括号更适合于对数据框进行子集化;

  2. %in%的结果与其left输入的长度相同,所以必须将testdata列放在左边,避免长度不匹配;

  3. 在使用$时,您只能通过不带引号的名称引用列,如ex$State,否则必须将名称作为字符串传递。

    李>

【讨论】:

    猜你喜欢
    • 2022-01-01
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2022-10-18
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    相关资源
    最近更新 更多