【发布时间】:2018-05-11 18:05:25
【问题描述】:
我想将具有三个不同字符值的列转换为数字。
专栏很长,但标题是: 是的 不 不 可能是 不 是的
我希望它看起来像这样: 2 1 1 3 1 2
问题是我想指定哪个值会得到哪个数字,重要的是“是”会得到值 2,“否”会得到值 1,而“也许”会得到值 3。
我尝试使用 as.numeric,但它自己决定什么值。
【问题讨论】:
标签: r dataframe numbers integer character
我想将具有三个不同字符值的列转换为数字。
专栏很长,但标题是: 是的 不 不 可能是 不 是的
我希望它看起来像这样: 2 1 1 3 1 2
问题是我想指定哪个值会得到哪个数字,重要的是“是”会得到值 2,“否”会得到值 1,而“也许”会得到值 3。
我尝试使用 as.numeric,但它自己决定什么值。
【问题讨论】:
标签: r dataframe numbers integer character
试试这个:
col=c("Yes", "No", "No", "Maybe", "No", "Yes")
col<-as.integer(factor(col,levels=c("No","Yes","Maybe")))
当你放置关卡时,你可以随意订购它们
【讨论】:
您也可以以 dplyrish 方式执行此操作。在这种情况下, c 是一个数据框
c = as.data.frame(c('Yes','No','No','Maybe','No','Yes'))
dplyr::case_when(
c == "Yes" ~ 2,
c == "No" ~ 1,
c == "Maybe" ~ 3
)
【讨论】: