R之踩坑 與 的區別

2021-09-02 22:21:50 字數 1079 閱讀 3312

今天有個任務,要計算成績落在所有成績的均值加減標準差內的成績佔所有成績的比重,於是首先算出均值和標準差(就這我還踩了好久的坑,太菜了太菜了):

# grade是dataframe型別的

sd_grade <

- sd(

as.numeric(unlist(

list

(grade)))

)mean_grade <

- mean(

as.numeric(unlist(

list

(grade)))

)

然後就可以開心地算比重liao:

grade[

(grade>mean_grade-sd_grade)&&

(grade

]

哎,等等執行這一句之後的結果怎麼還會是grade呢,我首先懷疑是優先順序之類的問題,於是嚴謹得加了一重又一重的括號,然而並沒有什麼用,在進一步展開之前,可以先看一下grade的具體內容。

此時我們換個比較方式再試一次:

grade[

(grade>80)

&&(grade<90)

]

發現了嗎,第二次與第一次有何區別,為什麼第一次全部被選中了,而第二次卻獲得了空的資料框——第一次時,資料框的第乙個元素是符合篩選條件的,而第二次卻不符合,這恰恰反映了&&與&的重要區別,在面對乙個向量時,&&只會考慮向量的第乙個元素,而其他元素就直接搬來第一次比較的結果。

所以,只要換成&,就平安無事了。

最後再補乙個坑,這樣篩選出來的資料型別並不是原來的dataframe,因此計算比率要這樣子:

fac <

- length(grade[

(grade>mean_grade-sd_grade)

&(grade

/nrow(grade)

python踩坑記錄,路徑加r

一 python中檔案路徑的寫法 檔案路徑不能用反斜槓 舉個例子,如果我傳入的檔案路徑是這樣的 則會報錯syntaxerror unicode error unicodeescape codec can t decode bytes in position 2 3 tr 原因分析 在windows系...

WSL入坑與踩坑

這篇文章,將會娓娓道來我使用wsl的經歷,包括如何安裝以及早期玩家踩的一些坑。這是乙個很好的工具,與vscode簡直是絕配。wsl是什麼 適用於 linux 的 windows 子系統可讓開發人員按原樣執行 gnu linux 環境 包括大多數命令列工具 實用工具和應用程式 且不會產生傳統虛擬機器或...

javascript之踩坑記錄

console.log true console.log false 這個坑在於js裡的 和 的區別。1 對於string,number等基礎型別,和 是有區別的 1 不同型別間比較,之比較 轉化成同一型別後的值 看 值 是否相等,如果型別不同,其結果就是不等 2 同型別比較,直接進行 值 比較,兩...