如果满足任何条件,则创建一个虚拟对象

时间:2016-04-03 10:11:42

标签: r dataframe dummy-variable

如果某个行动发生在首都,我想创建一个假人,我的数据集中包含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

1 个答案:

答案 0 :(得分:0)

假设您在变量位置有非结构化文本,则可以使用SELECT ( yr * 12 + mnt + @Diff - 1) / 12 * 10000 + (( yr * 12 + mnt + @Diff - 1) % 12 + 1) * 100 + 1 FROM (SELECT @EffectiveDate / 100%100 Mnt, @EffectiveDate / 10000 Yr)T 对您的首都进行模式匹配

grepl

这会产生您想要的输出。但是,如果您提供有关数据结构的更多信息,可能会有一个更简单的解决方案。