2014-05-07 33 views
0

我有一些当前是字符形式的数据,我需要将其置于数字形式,以便我可以获得均值。我是R的新手,所以任何帮助都将不胜感激。我最初的想法是缺少的数据导致它不能被读作num,但可能是因为数字是“3”而不是3?将一个字符转换为R中的数字

这是我有:

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

我试着从chr转换Xnum不同的方法:


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

'平均值(as.numeric(X),na.rm = T)'?? – jlhoward

+0

你尝试过'as.numeric(X)'吗? – A5C1D2H2I1M1N2O1R2T1

+0

这绝对是重复的。问题是,选择哪一个? –

回答

0

这应该工作:

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

做好as.numeric()将引入NA对于喜欢“X”和许多的汇总函数值有na.rm参数忽略矢量NA值。

但当然,采取染色体列表的意思是一个非常奇怪的操作。

+0

最后的评论应该是笑话吗? –

+0

@邦德除尘赫赫。不,我想我错了。我认为这是在某处讨论染色体。我想我一直在处理遗传数据太久了。 – MrFlick

+0

在R“字符”是“字符”。 –

1

一如既往,实际数据的一个例子很有帮助。不过,我想我可以回答。如果您的数据是字符数据,然后转换为数字像这样将工作大部分时间:

X2 <- as.numeric(X) 

如果你已经缺失值,都显示为NA?还是你在那里写了其他的东西来表明失踪,比如“失踪”?如果您的原始数据中包含NA以外的其他值,那么当您执行as.numeric(X)转换时,R会将这些值转换为NA并给出警告消息。

要拍摄数字对象的平均已缺失值,使用:

mean(X2, na.rm=TRUE) 
+0

谢谢劳拉,缺失值显示为NA,我没有在那里表明缺失。 > ffa < - as.numeric(FamFriendAccept) > > mean(ffa) [1] NA> ffa < - as.numeric(FamFriendAccept,na。(ffa,na.rm = TRUE) [1] 5.460305 – trob

+0

谢谢!所以这有助于获得平均值。如果我需要将该平均值与另一个平均值进行比较,那么每次计算都必须输入na.rm = TRUE吗? – trob

+0

是的。例如,要对两个具有NA值的对象进行t检验,您可以编写't.test(A,B,na.rm = T)'。 – LauraS

相关问题