R 基于另一列的内容添加列

R 基于另一列的内容添加列,r,R,我的问题 我的data.frame是174792 obs。由两个变量组成。我希望在列中找到字符串,然后根据内容插入包含相应字符串的新列。如果我使用iris数据集 示例 Species这非常适合命名向量,但要使其在内置的iris数据集上工作,您需要匹配大小写,因此我将您的物种向量全部小写(因为此方法没有ignore.case参数): 由于“物种”的等级与替换向量(“位置”)的顺序相同,您可以使用因子并将标签指定为“位置” iris1命名向量工作正常!非常感谢。当我使用==匹配整个字符串时,我确实遇

我的问题
我的
data.frame
是174792 obs。由两个变量组成。我希望在列中找到字符串,然后根据内容插入包含相应字符串的新列。
如果我使用
iris
数据集

示例

Species这非常适合命名向量,但要使其在内置的
iris
数据集上工作,您需要匹配大小写,因此我将您的物种向量全部小写(因为此方法没有
ignore.case
参数):

由于“物种”的
等级
与替换向量(“位置”)的顺序相同,您可以使用
因子
并将
标签
指定为“位置”


iris1命名向量工作正常!非常感谢。当我使用
==
匹配整个字符串时,我确实遇到了一个错误,说明了
未使用的参数
,因此不确定那里发生了什么…听起来像是另一个语法错误。确保括号和引号都匹配,并且逗号都正确。我的
ifelse
行运行得很好。
Species <- c("setosa","versicolor","virginica")
Position <- c("Yard","Garden","Wild")

named.pos = Position
names(named.pos) = Species
iris$position = named.pos[iris$Species]
iris$position = ifelse(iris$Species == "setosa", "Yard",  
                       ifelse(iris$Species == "versicolor", "Garden", "Wild"))
levels(iris$Species)
#[1] "setosa"     "versicolor" "virginica" 
iris1 <- transform(iris, position=as.character(factor(Species, 
                            labels=Position)))