将调查数据转换为数值

时间:2013-05-02 04:38:28

标签: r

我确信之前已经回答了这个问题,但我担心我对R的理解还不够正确。

我目前有一个数据集,其中包含许多不同问题的调查数据答案。大多数问题都是字符串。我希望将某些列中的某些字符串更改为数值,以便我可以在图表上绘制它们。

具体来说,我的数据集名为lb2009。一栏,第10列,提出一个问题,有3个可能的答案。答案是3种不同的句子。我想改变一个句子使其等于1,另一个使其等于2,而另一个使其等于3。

如果你能尽可能轻松地为我拼写,我会非常感激。谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

例如,

ans = c("my ans1","my ans2","my ans3")

as.numeric(factor(ans))

## [1] 1 2 3

请注意,大多数文件输入函数(如read.tableread.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 )