Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中:查找列中所有唯一的值,并用逗号分隔_R_Strsplit - Fatal编程技术网

在R中:查找列中所有唯一的值,并用逗号分隔

在R中:查找列中所有唯一的值,并用逗号分隔,r,strsplit,R,Strsplit,我对一个物种进行了多次观察,观察者/观察者组不同,我想创建一份所有独特观察者的列表。我的数据如下所示: data <- read.table(text="species observer 1 A,B 1 A,B 1 B,E 1 B,E 1 D,E,A,C,C 1 F" , header = TRUE, stringsAsFactors = FALSE) 我尝试使用以下命令对C列中的数据进行子串,但这只返回观察者的唯一组合 all_observers <-

我对一个物种进行了多次观察,观察者/观察者组不同,我想创建一份所有独特观察者的列表。我的数据如下所示:

data <- read.table(text="species observer
1 A,B
1 A,B
1 B,E
1 B,E
1 D,E,A,C,C
1 F"               , header = TRUE, stringsAsFactors = FALSE)
我尝试使用以下命令对C列中的数据进行子串,但这只返回观察者的唯一组合

all_observers <- unique(strsplit(as.character(data$observer), ","))

all_observers
[[1]]
[1] "A" "B"

[[2]]
[1] "B" "E"

[[3]]
[1] "D" "E" "A" "C" "C"

[[4]]
[1] "F"

所有观察者我们可以在“观察者”上使用
单独的行
,获得按“物种”分组的
不同的
行,并粘贴
观察者

library(tidyverse)
data %>% 
   separate_rows(observer) %>% 
   distinct %>% 
   group_by(species) %>% 
   summarise(observer = toString(observer))

您就快到了,您只需在执行
唯一性
之前
取消列表

all_observers <- unique(unlist(strsplit(as.character(data$observer), ",")))

所有观察者您也可以使用
scan()


在执行
unique
之前,您需要
unlist
。尝试
unique(unlist(strsplit(…))
@Gregor Add作为答案?
all_observers <- unique(unlist(strsplit(as.character(data$observer), ",")))
unique(scan(text=data$observer, what="", sep=","))
# Read 14 items
# [1] "A" "B" "E" "D" "C" "F"