【发布时间】:2023-03-09 06:34:01
【问题描述】:
我是一名新的 R 爱好者,致力于扩展我的知识。我正在阅读 Edwin de Jonge 和 Mark van der Loo 撰写的 An Introduction To Data Cleaning With R 文章。我正在做练习 2.4,如果有人能证实我解决这个特定问题的技巧,我将不胜感激: 这是原始数据:
1 // Survey data. Created : 21 May 2013
2 // Field 1: Gender
3 // Field 2: Age (in years)
4 // Field 3: Weight (in kg)
5 M;28;81.3
6 male;45;
7 Female;17;57,2
8 fem.;64;62.8
这是我能够构建的更简洁的版本:
df:
Gender Age..in.years. Weight..in.kg.
1 M 28 81.3
2 male 45 <NA>
3 Female 17 57,2
4 fem. 64 62.8
这就是我使用 adist 重新编码得到的结果
D:
rawtext coded
1 M male
2 male male
3 Female female
4 fem. female
现在我必须将 Gender 列转换为带有标签 man 和 woman 的因子变量。 我不知道如何继续,我正在考虑将数据的性别列更改为以下列向量:
f <- factor(D$coded, levels = c("male", "female"), labels = c("man", "woman"))
返回:
[1] man man woman woman
Levels: man woman
我是正确的还是完全错误的?有没有办法使用transform直接改变df中的Gender变量?即这样做更好:
df$Gender <- plyr::revalue(D$coded, c(male = "man", female = "woman"))
或者是否有另一种方法可以在不使用多个 ifesle 命令的情况下将 Gender 变量的观察结果更改为“男人”或“女人”?
我试图通过更多地了解因素来获得答案,但在任何地方都找不到与此非常相似的东西。 谢谢。
【问题讨论】:
-
您应该显示数据,以便轻松重现。这是一个参考:stackoverflow.com/questions/5963269/…
-
你能显示
D$coded的结果吗?级别排序在那里有所不同 -
对不起,我也不是 StackOverFlow 方面的专家。 D 数据是第三个代码块。
-
@Buckeye14Guy 看看 Frank 的链接,它有 很多 对提出好问题的好建议。您可以做的最好的事情之一就是使用
dput共享您的数据。 -
我不清楚您在这里实际问的是什么问题?也许您可以突出显示您遇到问题的部分,然后介绍或结束问题到底是什么不适合您?
标签: r