我有一些目前处于字符形式的数据,我需要将其放入数字形式,这样我才能得到平均值。我是R的新手,所以任何帮助都会非常感激。我最初的想法是,丢失的数据导致它不被读作num,但可能是因为数字是“3”而不是3?
这就是我所拥有的:
X
chr [1:1964] "3", "4", "4", "1", NA
我尝试过将X
从chr
转换为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] "" "" "" "" ...
答案 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
值。
但当然采用染色体列表的平均值是一个非常奇怪的操作。