リスト(list_df)に多くのデータフレームが保存されており、それらのデータフレームの1つに次のような列(c1)があります。
c1
4
6
1.5
2
3
7.5
1
9
2行ごとの合計を計算し、1行おきに値を追加し、その間に空の空白を残したいと思います。
出力:
c1 c2
4
6 10
1.5
2 3.5
3
7.5 10.5
1
9 10
現在、列c1から2行ごとの合計を作成するコードがあります。
for(i in seq_along(list_df)){
list_df[[i]]$c2<-
rowsum(list_df[[i]][,1], as.integer(gl(nrow(list_df[[i]]), 2, nrow(list_df[[i]]))))
}
ただし、この場合c1の長さは8ですが、新しく作成された列c2の長さは4であるため、エラーがスローされます。新しく作成された列c2の値が代替行に挿入されるようにこのコードを変更する方法空白のままにしますか?
ありがとう
あなたが使用することができます
df = data.frame(c1 = c(4,6,1.5,2,3,7.5,1,9))
df$c2 = NA
df$c2[c(F,T)] = colSums(matrix(df$c1, 2))
# c1 c2
# 1 4.0 NA
# 2 6.0 10.0
# 3 1.5 NA
# 4 2.0 3.5
# 5 3.0 NA
# 6 7.5 10.5
# 7 1.0 NA
# 8 9.0 10.0
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加