【发布时间】:2015-09-15 05:04:00
【问题描述】:
我确信这个问题已经被问了很多时间,但我找不到解决方案。
我正在尝试根据第一个变量的值有条件地替换第二个变量的值。这是数据。
MAKE Continent
1 HOLDEN US
2 HOLDEN US
3 FORD US
4 FORD US
if(gsample$MAKE == "HOLDEN") gsample$Continent = "AUS"
警告信息:
In if (gsample$MAKE == "HOLDEN") gsample$Continent = "AUS" :
the condition has length > 1 and only the first element will be used
【问题讨论】:
-
您可以使用矢量化的
ifelse,即with(gsample, ifelse(MAKE=='HOLDEN', 'AUS', Continent))或只是gsample$Continent[gsample$MAKE=='HOLDEN'] <- 'AUS'(假设该列是character类)。或者使用data.table的快速选项是library(data.table);setDT(gsample)[MAKE=='HOLDEN', Continent:= 'AUS'] -
gsample$Continent <- ifelse(gsample$MAKE == "HOLDEN", "AUS", gsample$Continent) -
谢谢 Avinash Raj 和 akrun。
标签: r if-statement