0
データフレームがあり、そのセルで何かを行い、変更したセルを覚えておく必要があります。 1つの方法は、2つのforループでインデックスをループすることです。しかし、1つのループでこれを行う方法はありますか?R:df要素をループしながらインデックス名を取得
完全に私はこのような何か必要があります:私は必要なものの
changes = data.frame(Row = character(), Col = character())
for (cell in df){
if (!(is.na(df))){
cell = do.smt(cell)
temp = list(Row = get.row(cell), Col = get.col(cell))
changes = rbind(changes,temp)
}
}
例:あなたはフォーマットを使用する場合はこれは両方を取り除く
df = data.frame(A = c(1,2,3), B = c(4,5,6), C = c(7,8,9))
rownames(df) = c('a','b','c')
changes = data.frame(Row = NA, Col = NA)
for (i in rownames(df)){
for (j in colnames(df)) {
if (df[i,j] > 5) {
df[i,j] = 0
temp = list(Row = i, Col = j)
changes = rbind(changes, temp)
}
}
}
はおそらく、最終DFで初期DFを比較し一致していることを懸念している場合、ソートのその単純な問題。 dfが数値の場合は、2つを減算し、どの項目が0でないかを確認します。データのサンプルを提供してください。そしてsmtとは何ですか? – Ansjovis86
意味のある最小の実例と期待される結果を与えてください。私はこれが1行のコードで解決可能であると思われます(ベクトル化手法を使用)。 –
@RomanLuštrikExample added – lotrus28