【发布时间】:2017-04-05 12:20:03
【问题描述】:
我正在尝试使用 mutate 做一个简单的条件。
代码应基于来自同一数据帧的两个变量创建一个名为“gender”的新变量。
sample <- data.frame(
client = c("john", "peter", "hanna", "lisa"),
id = c(100, 400, 650, 700),
resident = c('YES', 'YES', 'YES', 'NO'))
male_index <- as.vector(000:499)
female_index <- as.vector(500:999)
sample <- sample %>%
mutate(gender = ifelse(resident == "YES" & id %in% male_index, "Male",
mutate(gender = ifelse(resident == "YES" & id %in% female_index, "Female", "Female"))))
我收到以下错误,我不明白。我想这与SE有关。但是我对R还是不是很熟悉。
mutate_impl(.data, dots) 中的错误:
缺少参数“.data”,没有默认值
如果我使用单个 mutate 语句运行代码,我不会遇到任何问题。
【问题讨论】:
-
请不要混淆 R 和
dplyr。dplyr是可用于 R 统计计算环境的数据操作包(附加)。您收到的错误是dplyr的错误,而不是 R 的错误。 -
第一个
mutate有sample作为其隐含的第一个参数(参见help("%>%")),因为它遵循管道%>%。第二个mutate不会立即跟随管道,因此它缺少第一个参数。试试mutate(., gender = ....。跟SE没关系。它会抑制错误,但我不确定它是否更有意义
标签: r dplyr non-standard-evaluation standard-evaluation