2列のデータフレームがあります。1つ目はID番号で、2つ目は番号のリストです。リストを合計して2を加算する関数を定義しました。実行したいのは、forループを使用せずにすべての行の計算を実行することです。applyを使ってみましたが、うまくいきません...
コードは次のとおりです。
テストデータフレーム:
d1 <- c(1,2,3,4,5)
d2 <- c(4,6,8)
d3 <- c(5,10)
df1 <- data.frame(cbind(1, I(list(d1))))
df2 <- data.frame(cbind(2, I(list(d2))))
df3 <- data.frame(cbind(3, I(list(d3))))
df <- rbind(df1, df2, df3)
定義された関数sum2:
sum2 <- function(a)
{
sum(unlist(a)) + 2
}
applyを使用して、計算値を含むdfに3番目の列を追加するにはどうすればよいですか?
ありがとう!
以下はあなたの例のために働きます
sapply(df[,2], function(x) sum(x)+2)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加