我有一個數據框有2列,第一個是ID號,第二個是數字列表。我定義了一個函數來總結列表並添加2.我想要做的是對所有行進行計算而不使用for循環。我嘗試使用申請,但我不能讓它工作...將函數應用於數據框的列(列是列表)
下面的代碼:
測試數據幀:
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中?
謝謝!
你爲什麼喜歡' sapply'在循環?他們都是一個循環。除非你想要一個更清晰的語法? –
我認爲我更高效地做它...有沒有更好的方法來做到這一點? – jormaga
現在想不到一個,對不起。如果'X2'包含字符串,例如''4,6,8''而不是列表,你可以很容易地將這個矢量化,但是我不確定如何矢量化你的特定格式。 –