好的,我必须重新编码 df,因为我希望因子为整数:
library(dplyr)
load(url('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/crash2.rda'))
df <- crash2 %>% select(source, sex)
df$source <- sapply(df$source, switch, "telephone" = 1, "telephone entered manually" = 2, "electronic CRF by email" = 3, "paper CRF enteredd in electronic CRF" = 4, "electronic CRF" = 5, NA)
Run Code Online (Sandbox Code Playgroud)
这按预期工作,但下一个变量(性别)中有 NA 并且事情变得复杂:
df$sex <- sapply(df$sex, switch, "male" = 1, "female" = 2, NA)
Run Code Online (Sandbox Code Playgroud)
返回一个 NA 切换到遗忘的列表。使用unlist()返回一个对于 df 来说太短的向量。
length(unlist(sapply(df$sex, switch, "male" = 1, "female" = 2, NA)))
Run Code Online (Sandbox Code Playgroud)
应该是20207,但是是20206。
我想要的是通过将 NA 作为 NA …
谁能提供使用col.namesin 的有效示例as.data.frame?
之前也曾提出过类似的问题:
R中“ as.data.frame”中的“ col.names”是做什么用的?
为什么as.data.frame忽略col.names = vector
并提供了解决方法,但是我还没有看到实际使用的示例col.names和原因的解释。它可以做些有用的事吗?