【发布时间】:2015-09-12 12:43:55
【问题描述】:
我有一个看起来像这样的数据框
Animal
species sum
A 2
A 6
B 8
B 1
C 6
C 3
D 5
D 4
我想要将每个物种的最小总和除以最大总和并创建一个名为比率的新列的代码,如果该数字大于 .2,我希望它返回该比率,但如果它小于.2,我希望它返回 NA。 我想在 dplyr 中执行此操作 这是我目前拥有的代码,但它不起作用 我在 R
中有这串命令animal <- animal %>%
+ group_by(species) %>%
+ mutate(ratio = ifelse((min(sum)/max(sum) > .2), (min(sum)/max(sum)), "NA"))
谢谢!
最后应该是这个样子
species sum ratio
A 2 .333
A 6 .333
B 8 NA
B 1 NA
C 6 .5
C 3 .5
D 5 .8
D 4 .8
【问题讨论】:
-
您使用的是字符串“NA”而不是真正的 NA。如果您想稍后对数据集进行子集化,最好使用与
is.na和其他功能一起使用的真实 NA
标签: r if-statement conditional dplyr