【发布时间】:2016-04-03 10:11:42
【问题描述】:
如果某项行动发生在首都,并且我的数据集包含 34 个国家/地区,我想创建一个假人。此外,有时可能会出现单词位于较大字符串中的情况(例如“Berlin, Germany, DE”)。
假设列如下所示:
Location
1 Manchester
2 Berlin
3 Paris, France
4 Kansas
我希望 Dummy 产生以下输出:
Location Capital_Dummy
1 Manchester 0
2 Berlin 1
3 Paris, France 1
4 Kansas 0
知道我该怎么做吗?
我尝试了以下方法,我希望这至少适用于仅在列中出现大写字母名称但即使这样也没有成功(为简单起见将其缩短)的情况:
capital <- c(“Madrid”, “Berlin”, “Paris”, “Prague”, “Bratislava”)
capital_dummy[df$event_location == capital] <- 1
问题的解决方案,由 David Arenburg 提出:
capital <- c("Madrid", "Berlin", "Paris", "Prague", "Bratislava")
capital_dummy <- grepl(paste(capital, collapse = "|"), df$Location) + 0L
【问题讨论】:
-
试试
%in%而不是==。 -
也不工作。但是感谢您的帮助! :)
-
什么不起作用?你得到什么错误?您能否创建一个可重现的示例以提供所需的输出?
-
也许可以试试
grepl(paste(capital, collapse = "|"), df$Location) + 0L。并请在capital中正确引用。 R 无法识别“。使用"或'。 -
如果您有
Paris, France之类的东西 - 第一个解决方案将无法正常工作。您是否尝试过grepl解决方案?
标签: r dataframe dummy-variable