我有一个包含所有字符串列的数据框。偶尔也有NA
个。我想逐行将所有列添加到一个向量中,以便我只能获得整个数据框中的唯一字符串。给出这样的样本数据:
L1 L2 L3 L4
1 bed bicyle <NA> bird
2 <NA> road cat dance
3 cat rock table bed
4 mountain bed clock <NA>
然后我想要这样的事情:
Total
1 bed bicyle bird road cat dance rock table mountain clock
我显然可以通过循环执行此操作,但我正在尝试找出apply或plyr类型解决方案(更像是R
- )。到目前为止,我可以得到一个数组列表,但我试图将这些数组加在一起。我的方法是否正确?任何帮助表示赞赏。
df <- data.frame(L1 = c("bed", NA, "cat", "mountain"),
L2 = c("bicyle", "road", "rock", "bed"),
L3 = c(NA, "cat", "table", "clock"),
L4 = c("bird", "dance", "bed", NA))
df <- lapply(df, unique)
答案 0 :(得分:4)
你可以这样做:
unique(as.vector(t(df)))
或者,whitout NAs
:
unique(na.omit(as.vector(t(df))))
答案 1 :(得分:2)
这是完成任务的一种方法:
<select [(ngModel)]="rec.selected" (change)="changeOption(rec)">...
输出:
require(dplyr)
df <- data.frame(L1 = c("bed", NA, "cat", "mountain"),
L2 = c("bicyle", "road", "rock", "bed"),
L3 = c(NA, "cat", "table", "clock"),
L4 = c("bird", "dance", "bed", NA),
stringsAsFactors = FALSE)
df <- df %>% unlist() %>% na.omit() %>% unique()