在R中将chr转换为num

时间:2014-05-07 18:25:17

标签: r char converter var

我有一些目前处于字符形式的数据,我需要将其放入数字形式,这样我才能得到平均值。我是R的新手,所以任何帮助都会非常感激。我最初的想法是,丢失的数据导致它不被读作num,但可能是因为数字是“3”而不是3?

这就是我所拥有的:

X
chr [1:1964] "3", "4", "4", "1", NA

我尝试过将Xchr转换为num的不同方法:


X <- na.omit(Y, Z, as.numeric)
mean(X)
# [1] NA
# Warning message:
# In mean.default(X) :
#  argument is not numeric or logical: returning NA

X <- c(Y, Z, na.rm=TRUE)
mean(X, na.rm=TRUE)
# [1] NA
# Warning message:
# In mean.default(X, na.rm = TRUE) :
#   argument is not numeric or logical: returning NA

X <- c(Y, Z, na.rm=TRUE)
str(X)
#  Named chr [1:1965] "3" "4" "4" "1" "5" "7" NA "6" NA "5" ...
#  - attr(*, "names")= chr [1:1965] "" "" "" "" ...

2 个答案:

答案 0 :(得分:1)

与往常一样,您的实际数据示例很有帮助。不过,我想我无论如何都可以回答。如果您的数据是字符数据,那么像这样转换为数字将在大部分时间内起作用:

 X2 <- as.numeric(X)

如果您缺少值,它们是否显示为NA?或者你是否在那里写了其他东西以表示缺失,例如“失踪”?如果您的原始数据中包含NA以外的内容,那么当您执行as.numeric(X)转换时,R会将这些值转换为NA并向您发出警告消息。

要获取具有缺失值的数字对象的均值,请使用:

 mean(X2, na.rm=TRUE)

答案 1 :(得分:0)

这应该有效:

mean(as.numeric(X), na.rm=TRUE)

执行as.numeric()会为“X”等值引入NA,并且许多汇总函数都有na.rm参数来忽略向量中的NA值。

但当然采用染色体列表的平均值是一个非常奇怪的操作。