这个问题与这个问题有关,但并不完全相同.
说我有这个数据框,
df <- data.frame(
id = c(1:6),
profession = c(1, 5, 4, NA, 0, 5))
Run Code Online (Sandbox Code Playgroud)
以及包含有关行业代码的人类可读信息的字符串.说,
profession.code <- c(
Optometrists=1, Accountants=2, Veterinarians=3,
`Financial analysts`=4, Nurses=5)
Run Code Online (Sandbox Code Playgroud)
现在,我正在寻找df$profession用文本中的文本替换值的最简单方法 profession.code.最好不使用特殊库,除非它显着缩短代码.
我希望我的最终结果是
df <- data.frame(
id = c(1:6),
profession = c("Optometrists", "Nurses",
"Financial analysts", NA, 0, "Nurses"))
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
谢谢,埃里克
我的数据集中有以下列:
presult aresult
I single
I double
I triple
I home run
SS strikeout
Run Code Online (Sandbox Code Playgroud)
我想添加第三列"基础",这取决于列issult中结果的值.
例如,我希望基数为1表示单个,2表示双重,3表示三重,4表示本垒打,0表示删除.
通常我会像这样创建新变量:
dataset$base<-ifelse(dataset$aresult=="single", 1, 0)
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何在不将所有其他变量设置为零的情况下编写新变量.