我有以下數據庫。 如何忽略空單元格並壓縮成一行?摘要數據幀
M = data.frame(Name = c('name','name'), Col1 = c("",1) , Col2 = c(2,""))
M$Col1 <- as.character(M$Col1)
M$Col2 <- as.character(M$Col2)
謝謝
我有以下數據庫。 如何忽略空單元格並壓縮成一行?摘要數據幀
M = data.frame(Name = c('name','name'), Col1 = c("",1) , Col2 = c(2,""))
M$Col1 <- as.character(M$Col1)
M$Col2 <- as.character(M$Col2)
謝謝
您可以使用合計功能解決你的問題。
aggregate(M[c("Col1","Col2")], list(M$Name), max, na.rm = TRUE)
非常感謝,但是有沒有我可以聚合角色的方式? –
使用* max *而不是* min *作爲聚合的樂趣。你會得到所需的輸出 –
這裏是一個dplyr
解決
library(dplyr)
M %>%
group_by(Name) %>%
summarise(Col1 = paste0(Col1, collapse = ''),
Col2 = paste0(Col2, collapse = ''))
## Name Col1 Col2
## (fctr) (chr) (chr)
## 1 name 1 2
這部作品根據輸入數據,而不必在列轉換爲字符
M = data.frame(Name = c('name','name'), Col1 = c("",1) , Col2 = c(2,""))
由於@Nicola在評論中已經表示:
M2 <- aggregate(.~Name, M, paste, collapse="")
正在給出所需的輸出:
> M2
Name Col1 Col2
1 name 1 2
嘗試使用'aggregate(。〜Name,M,paste,collapse =「」)''。 – nicola
@nicola謝謝,但我想在行上顯示「名稱」,「1」,「2」 –
@ nicola的建議給出了輸出結果,請參閱我爲它製作的社區wiki答案 – h3rm4n