簡體   English   中英

Windows 和 Linux 之間的語法差異

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM