[英]Syntax differences between Windows and 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 上解決這個問題並使用這個mean(df [,1])
,就像 Linux,因為我需要用於循環。
注意:我知道,如果在 Windows 上我使用mean(df$a)
我將能夠得出平均值,但是由於循環,我需要使用以前的方式
我在 Windows 上的 R 版本是:
"R version 4.0.2 (2020-06-22)"
我有一個很強烈的懷疑,你是一個結束了data.frame
在Linux和tibble
在Windows(數據幀的tidyverse擴展)。 您可以使用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
的一data.frame
集是一個向量(除非您指定drop=FALSE
),如果這是您選擇的列的類,則屬於numeric
類; tibble
的一列子集是一列 tibble。
您可以使用df[[1]]
(適用於循環/間接索引)來執行您想要的操作,或者使用as.data.frame(df)[,1]
; 第一個可能更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.