如何解决Windows和Linux之间的语法差异
我是Windows上R的用户,我注意到考虑以下示例,在Linux上使用R时有一些简单的区别:
a
10.3
14.7
11.4
10.6
在Linux上,当我使用以下命令时:
mean (df [,1])
我通常会得到均值,但是在Windows上时会出现此错误:
Warning message:
In mean.default (df[,1]): argument is not numeric or logical: returning NA
有人知道我是否可以在Windows上修复此问题并像Linux一样使用此mean(df [,1])
,因为我需要用于循环。
注意:我知道,如果在Windows上我使用mean(df$a)
,我将能够发表意见,但是由于循环,我需要使用以前的方法
我在Windows上的R版本是:
"R version 4.0.2 (2020-06-22)"
解决方法
我非常强烈地怀疑您最终将在Linux上使用data.frame
,而在Windows上使用tibble
(数据帧的整齐扩展)。您可以使用class(df)
进行检查。
library(tidyverse)
df <- data.frame(a=1:3)
mean(df[,1])
## [1] 2
df <- tibble(df)
mean(df[,1])
## [1] NA
## Warning message:
## In mean.default(df[,1]) : argument is not numeric or logical: returning NA
产生这种差异的原因是,data.frame
的一个单列子集是drop=FALSE
类的向量(除非您指定numeric
),如果它是您选择的专栏; tibble
的一个单列子集是一个单列小标题。
您可以使用df[[1]]
(与循环/间接索引配合使用)来完成所需的操作,或者使用as.data.frame(df)[,1]
;第一个可能更好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。