我经历R上的Kaggle教程,并试图替代magrittr
的filter
。但这似乎不起作用,但我不明白为什么。他们似乎做同样的事情。
我试过下面的代码。
f_countOfMen <- mutFoodData %>%
select(starts_with("gender")) %>%
filter(Gender == 1) %>%
rowSums(na.rm = T)
f_countOfWomen <- mutFoodData %>%
select(starts_with("gender")) %>%
filter(Gender == 2) %>%
rowSums(na.rm = T)
mutFoodData <- mutFoodData %>%
mutate(fMen = f_countOfMen, fWomen = f_countOfWomen) # add our new variables
# however it doesn't add the variables and produces an error
m_countOfMen <- mutFoodData %>%
select(starts_with("gender")) %>%
magrittr::equals(1) %>%
rowSums(na.rm = T)
m_countOfWomen <- mutFoodData %>%
select(starts_with("gender")) %>%
magrittr::equals(2) %>%
rowSums(na.rm = T)
mutFoodData <- mutFoodData %>%
mutate(mMen = m_countOfMen, mWomen = m_countOfWomen) # add our new variables
# this code does as expected
我希望添加新的列,但我不断收到此错误:
mutate_impl(.data,点)中的错误:错误的结果大小(76),预期为124或1
问题在于,这样做的同时filter
减少了行数,并将其添加到具有完整行的原始数据集中。在这里,而不是filter
ing,创建一个逻辑矩阵,并获得rowSums
“男人”和“女人”的
library(dplyr)
mutFoodData %>%
mutate(fMen = rowSums(select(., starts_with("gender")) == 1, na.rm= TRUE),
fFemale = rowSums(2*(select(., starts_with("gender")) ==2), na.rm = TRUE))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句