【问题标题】:subset indexing in rr中的子集索引
【发布时间】:2014-02-24 22:40:31
【问题描述】:

我有一个数据框ma

它有一个称为type的因子

type 由以下因素组成:I210, I210plus, I210plusc, KV2c, KV2cplus

我想将其中一些因素放在一个向量中,比如selected_types

所以,selected_types<-c("I210plusc","KV2c")

然后,让这个命令子集数据帧ma

ma1<-subset(ma, type==selected_types)

这样ma1 将是ma 的子集,仅包含具有

的观察

type I210plusc and KV2c

但是,当我这样做时,结果数据帧 ma1 中的观察次数少于原始 maselected_types 中两种类型的出现次数之和

关于我做错了什么有什么想法吗?

谢谢

【问题讨论】:

  • 为什么不包括 dput(df) 的数据帧 df 以便更容易找出发生了什么。

标签: r dataframe subset


【解决方案1】:

我最初在评论中有这个,但它有点冗长,而且我想补充一下。这里有一些关于正在发生的事情的细节:

您对== 所做的是回收您的两个长度向量,以便将每个偶数行与"KV2c" 进行比较,将每个奇数行与"I210plusc" 进行比较,因此您的最终结果将是奇数行是"KV2c",偶数行是"I210plusc"

可能使问题变得清晰的替代解决方案如下:

subset(ma, type == selected_types[[1]] | type == selected_types[[2]])

或者,更优雅:

subset(ma, type %in% selected_types)

%in% 运算符返回一个与 type 相同长度的逻辑向量,TRUE 用于 type 中“位于”selected_types 中的每个位置(因此是运算符的名称)。

【讨论】:

    猜你喜欢
    • 2021-08-20
    • 2015-03-28
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    相关资源
    最近更新 更多