これは私がやろうとしていることです: 1. csvファイル を読み込みます。2.列番号107を作成し、条件に基づいて列67から値をコピーします。あなたは以下のようにベクトル化操作を使用してコードを置き換えることができます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
ありがとうございます! :)。私のコードに何が間違っているかを指摘できますか? –
問題は、コードが1つのステートメント内の他の列と同じ長さの列を作成するのではなく、行ごとに新しい列を作成しようとしていることです。 Rのデータフレームは、すべての列の長さを同じにする必要があります(http://stackoverflow.com/questions/9253303/r-dataframe-with-varied-column-lengths)。これを修正するには、 'for'ループの前に列を追加し、行ごとに値を変更する必要があります。 'for'ループの前に' report $ Col107 = NA'を置くことでこれを行うことができます。 – JJEO
が分かります。ありがとう、トン! –