この投稿How do I remove empty data frames from a list?は、空のデータフレームを削除する方法について話します。空のデータフレーム(nrow = 0)をリストから削除し、1行のプレースホルダdataframes/data.tablesに置き換えるにはどうすればよいですか?リストから空のdataframe/data.tablesをプレースホルダdata.tableに置き換えるにはどうすればよいですか?
M1 <- data.frame(matrix(1:4, nrow = 2, ncol = 2))
M2 <- data.frame(matrix(nrow = 0, ncol = 0))
M3 <- data.frame(matrix(9:12, nrow = 2, ncol = 2))
mlist <- list(M1, M2, M3)
placeholder = data.table(a=1,b=1)
私が試した:これについて
lapply(mlist, function(x) ifelse(nrow(fundslist[[x]]) == 0, placeholder, x))
ああ、「長さ」、何とかそれを逃した。これは、リストのリサイクルを使用する限り、明らかに優れた解決策です。 –
うまくやった!!!! – Sotos
マイナーポイント:私はしばしば、観測値を持たない(OPのように0ではない) "DT = data.table(a = 1)[0L]のような列を持っている"空の " ] '。その場合、 '!sapply(mlist、nrow)'のテスト。 – Frank