以下是我正在嘗試執行的操作: 1.讀取csv文件 2.根據條件創建列號107並從列67中複製值:'only copy values if在70列的行值「是」」將if語句應用於數據框架元素
代碼:
report <- read.csv("C:\\Users\\ha317981\\Desktop\\practice\\input.csv", header=1)
for(i in 1:length(report[[70]])-1){
if(report[[i, 70]] =="Yes"){
report[[i,107]] <-report[[i, 67]]
}
i<- i + 1
}
Error: Error in
[[.default
(col, i, exact = exact) : attempt to select less than one element in get1index
謝謝! :)。你能否指出我的代碼有什麼問題? –
問題是你的代碼試圖逐行創建一個新的列,而不是創建一個與其他列在一個語句中長度相同的列。 R中的數據幀需要使其所有列的長度相同(http://stackoverflow.com/questions/9253303/r-dataframe-with-varied-column-lengths)。爲了解決這個問題,你必須在'for'循環之前添加一列,然後_then_逐行更改它的值。你可以在'for'循環之前加入'report $ Col107 = NA'來做到這一點。 – JJEO
瞭解。萬分感謝! –