【发布时间】:2018-08-16 09:29:23
【问题描述】:
这似乎是 dplyr 过滤中非常奇怪的行为,有人可以告诉我我在哪里出错,或者您的机器上是否也发生了以下情况。先感谢您。
当我尝试使用 dplyr 过滤数据框时,它在使用原始字符串时工作正常,但在粘贴或使用变量时(至少在我的机器上)没有。
library(dplyr)
###Recreate data
country <- "ZAF"
df <- data.frame(iso3c=as.character("ZAF"),
country=as.character("South Africa"),
level=as.integer(4),stringsAsFactors = FALSE)
问题是这些过滤掉了 ZAF 行,而不是保留它。
###Filters out the ZAF row, none of these work
df.nowork1 <- filter(df, iso3c==country)
df.nowork2 <- filter(df, iso3c==paste(country))
df.nowork3 <- filter(df, iso3c==paste0("'",country,"'"))
这些按照我希望它们对变量执行的操作:
##Works
df.works <- filter(df, iso3c=="ZAF")
df.works2 <- filter(df, iso3c==paste("ZAF"))
【问题讨论】:
-
请不要用您的答案编辑您的问题。如果您自己找到了解决方案,欢迎您在下面回答;否则,您可以通过单击答案左侧的复选标记来选择其他成员的答案作为帮助您的答案。已编辑以包含解决方案的问题可能会回滚到以前的状态。