簡體   English   中英

在R中使用na.omit計算長度

[英]calculating length using na.omit in R

這是我的代碼:

data <-setNames(lapply(paste0("80-20 ", file.number,".csv"),read.csv,stringsAsFactors=FALSE),paste(file.number,"participant"))
# imports csv data and turns it into a R-data file

df <- data.frame(RT=1:100,rep.sw=sample(c("sw","rep",100,replace=TRUE)))

(error.sw.c <- lapply(data[control.data],function(df) with(df, na.omit(rep.sw == "sw" & accuracy == "wrong"))))

每次精度為“錯誤”的值標記為“ sw”的值時,此代碼都會掃描一堆excel文件並為值“ TRUE”賦值。 然后我要做的是計算真實值的數量,並將其放入數據幀中。 這是我嘗試的:

(dataframe.c <- data.frame(switch.rt = sapply(sw.c,mean), repetition.rt = sapply(rep.c,mean), switch.error = sapply(error.sw.c,length), group = rep("control",each=length(control.data))))

但是,當我這樣做時,它給出了所有值(TRUE和FALSE)的長度,而不僅僅是TRUE值。

如果我這樣做:

length(error.sw.c)

我得到所有錯誤值的總和,而不是分別獲得所有錯誤值的總和。

所以我的問題是:有沒有一種方法可以獲取每個單獨的excel文件的長度,以便可以將其放入數據幀中? 謝謝StackOverflow社區,你們還沒有讓我失望。 任何幫助將不勝感激。 讓我知道是否需要澄清。 :)

sum()可用於計算邏輯向量中TRUE的數量。 讓我們看看為什么:

set.seed(555)
logicalVec <- rnorm(5) > 0 # create logical vector
logicalVec
[1] FALSE  TRUE  TRUE  TRUE FALSE

算術函數將邏輯值強制轉換為數值,以使FALSE變為0TRUE變為1

logicalVec*1
[1] 0 1 1 1 0

您可以將sum(logicalVec)視為與sum(c(0,1,1,1,0))等效:

sum(c(0,1,1,1,0))
[1] 3
sum(logicalVec)
[1] 3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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