【发布时间】:2019-06-30 01:07:44
【问题描述】:
如果location_1 表示“埃塞俄比亚”并且年份对应于 1992 年之前的所有年份以及“埃塞俄比亚 (1993- )" 如果location_1 说“埃塞俄比亚”并且年份对应于 1993 年以后的所有年份。
不幸的是,即使是 1992 年之后的那些年,我想出的代码也全部替换为“埃塞俄比亚 (-1992)”。
以下是代码:
if (mydata$year >= 1992) {
mydata$location_1 <- sub("Ethiopia", "Ethiopia (-1992)", mydata$location_1)
} else mydata$location_1 <- sub("Ethiopia", "Ethiopia (1993-)", mydata$location_1)
我希望我会根据年份将所有“埃塞俄比亚”变成“埃塞俄比亚(-1992)”或“埃塞俄比亚(1993-)”。相反,结果是所有“埃塞俄比亚”都变成了“埃塞俄比亚(-1992)”。
【问题讨论】:
-
假设您的
year列包含的值 >=1992,则错误在于您的if条件。您正在将其对应的year属于>= 1992条件的所有值转换为"Ethiopia (-1992)",而那些不符合此条件(其他块)的值将转换为"Ethiopia (-1993)"。这与您在问题中所说的完全相反。 -
你能分享一些你的数据吗?阅读此处了解如何操作:How to make a reproducible example in r?
标签: r dataframe if-statement substitution