我正在尝试根据另一列中的值将值添加到新列中。以鸢尾花数据为例,我的基本逻辑是“如果iris $ Sepal.Length> 5,那么iris $ size =='TRUE'”。
> head(iris, 2)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
以虹膜数据为例,我的基本逻辑是“如果iris $ Sepal.Length> 5,则iris $ size =='TRUE'”产生:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species size
1 5.1 3.5 1.4 0.2 setosa TRUE
2 4.9 3.0 1.4 0.2 setosa NA
我可以对数据进行子集化,但是无法获取将值传回的语法。像这样吗?
subset(iris, iris$Sepal.Length >= 5) %>% iris$size == 'TRUE'
答案 0 :(得分:2)
您可以使用ifelse
语句执行类似的操作
iris$Size <- ifelse(iris$Sepal.Length >= 5, "TRUE", "FALSE")
答案 1 :(得分:2)
使用dplyr
。逻辑表达式的输出为TRUE/FALSE
。最好不要创建字符输出
library(dplyr)
iris %>%
mutate(size = Sepal.Length >=5)
答案 2 :(得分:2)
要么:
iris$size <- iris$Sepal.Length >= 5
或者,如果您想沿着tidyverse路线走
iris %>% mutate(size = Sepal.Length >= 5)
答案 3 :(得分:1)
iris$size[iris$Sepal.Length>=5] <- TRUE
这基本上是“将虹膜$ Sepal.Length等于或大于5的那些行放入TRUE至虹膜$大小”。