0

我确信这已经在某个地方得到了回答,但恐怕我对 R 的了解不够,无法正确地提出这个问题。

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

具体来说,我的数据集称为 lb2009。一列 p10st 提出了一个包含 3 个可能答案的问题。答案是 3 个不同的可能句子。我想更改一个句子使其等于 1,另一个使其等于 2,另一个使其等于 3。

如果您能尽可能简单地为我说明这一点,我将不胜感激。谢谢你的帮助。

4

3 回答 3

1

例如,

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

as.numeric(factor(ans))

## [1] 1 2 3

请注意,大多数文件输入函数(如read.table, )read.csv都可以选择将字符串视为因素。因此,您可以使用as.numeric.

于 2013-05-02T05:47:37.367 回答
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 )
于 2013-05-02T09:43:43.960 回答
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

于 2013-05-02T04:55:07.750 回答