我試圖創建一個「彙總」數據框,其中包含一些關於我的R項目中的幾個對象的高級統計信息。即使完成這個簡單的任務,我也遇到了麻煩,我嘗試過使用For循環和Apply函數,但沒有運氣。因此,我發現For循環可能並不是最好的選擇,所以我願意接受任何可以完成工作的解決方案。我有三個對象:text1
text2
和text3
「大字符(矢量)」類(想象我可能會探索這些對象,並將從它們創建一個NLP預測模型)。每個面積> 250 MB(向上1萬元的「行」,每個)一次裝入R.在R中,從多個對象創建彙總數據框
我的目標:存儲在表中object.size()
length()
和max(nchar())
結果我的3個對象。
方法1:使用的應用()函數
問題:我還沒有成功地應用於多種功能的單個對象。我明白如何做到簡單適用,如lapply(x, mean)
但我在這裏不足。
方法2:綁定行使用For循環
我喜歡這個解決辦法,因爲我幾乎知道如何實現它。許多SO用戶表示這是一種糟糕的做法,但我缺乏其他想法。
sources <- c("text1", "text2", "text3")
text.summary <- data.frame()
for (i in sources){
text.summary[i ,] <- rbind(i, object.size(get(i)), length(get(i)),
max(nchar(get(i))))
}
問題:這將返回錯誤data length exceeds size of matrix
- 我知道我可以定義我的數據幀(第2行)的結構,但我已經看到這方面的建議反對這樣做,其他的問題太多了反饋。
感謝您幫助我理解完成此操作的正確方法。我知道如果我甚至不知道這個簡單問題,我會在做NLP時遇到麻煩,但是R是我第一次進入編程領域。錢幣!
這工作非常好,謝謝。我將更多地瞭解'do.call()'! –