我确信之前已经回答了这个问题,但我担心我对R的理解还不够正确。
我目前有一个数据集,其中包含许多不同问题的调查数据答案。大多数问题都是字符串。我希望将某些列中的某些字符串更改为数值,以便我可以在图表上绘制它们。
具体来说,我的数据集名为lb2009。一栏,第10列,提出一个问题,有3个可能的答案。答案是3种不同的句子。我想改变一个句子使其等于1,另一个使其等于2,而另一个使其等于3。
如果你能尽可能轻松地为我拼写,我会非常感激。谢谢你的帮助。
答案 0 :(得分:1)
例如,
ans = c("my ans1","my ans2","my ans3")
as.numeric(factor(ans))
## [1] 1 2 3
请注意,大多数文件输入函数(如read.table
,read.csv
)都可以选择将字符串视为因子。所以你可以使用as.numeric
转换它们。
答案 1 :(得分:0)
这个怎么样:
sent1 <- lb2009$p10st == 'My first sentence'
sent2 <- lb2009$p10st == 'My second sentence'
lb2009[sent1, ] <- 1
lb2009[sent2, ] <- 2
lb2009[!sent1 & !sent2, ] <- 3
这将获得前两个句子的匹配句子的行索引。然后,它将特定行设置为值1和2.最后一行设置不是句子1而不是句子2到3的行
答案 2 :(得分:0)
如果你打开R,这段代码将正常运行
# look at the full example iris data set (it's pre-loaded in your R)
iris
# first six records
head( iris )
# convert the `Species` column to numeric, so you get 1, 2, 3
as.numeric( iris$Species )
# now actually store that result back on the data frame
iris$SpeciesCat <- as.numeric( iris$Species )
# plot your results
hist( iris$SpeciesCat )