-1
我需要將轉換應用於大型數據框的所有數值變量。數據框也有其他類型的變量。我最初的想法是遍歷所有列,檢查它們是否數值,然後通過1000用函數轉換數據幀中的所有數值變量
我被困在我的代碼的功能劃分他們,希望得到一些指點的位置:
transformDivideThousand <- function(data_frame){
for(i in ncol(data_frame)){
if (is.numeric(data_frame[i])) {
data_frame[i]/1000
}
}
return(data_frame)
}
功能的執行:
test <- transformDivideThousand(mypatients)
- 測試是一個數據框,但轉換是沒有發生。我在哪裏犯錯?
- 作爲一個額外的,我也想transformDivideThousand有一個可選的參數,我可以傳遞一個列表的名稱爲變量使用,如果是空的,比迭代所有的。
您必須將結果重新分配到循環中。 'data_frame [[I]] < - data_frame [[I]]/1000'。使用雙方括號來提取一列;你應該學習'['和'[[''的區別。例如,'is.numeric(data_frame [i])'幾乎不會返回'TRUE'。此外,循環沒有正確定義;應該是'for(i in 1:ncol(data_frame))',否則只考慮最後一列。 – nicola