Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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_Split_Unique - Fatal编程技术网

R 基于包含多个字符串的特定列的唯一行

R 基于包含多个字符串的特定列的唯一行,r,split,unique,R,Split,Unique,我想根据值列将data.frame,all拆分为唯一的行: alldataframe: seq start value ch1 20 "NE001", "NE002" ch2 30 "NE002", "NE003" ch3 40 "NE001", "NE002", "NE003" 我的预期产出: seq start value ch1 20 NE001 ch1 20 NE002 ch2 30 NE002 ch2 30

我想根据
列将data.frame,
all
拆分为唯一的行:

all
dataframe:

seq  start  value
ch1   20    "NE001", "NE002"
ch2   30    "NE002", "NE003"
ch3   40    "NE001", "NE002", "NE003"
我的预期产出:

seq  start  value
ch1   20    NE001
ch1   20    NE002
ch2   30    NE002
ch2   30    NE003
ch3   40    NE001
ch3   40    NE002
ch3   40    NE003

有什么想法吗?谢谢大家!

这里有一个稍微巧妙的方法来实现它

d <- data.frame(seq=c('ch1', 'ch2', 'ch3'),
                start=c(20, 30, 40),
                value=c('"NE001", "NE002"',
                        '"NE002", "NE003"',
                        '"NE001", "NE002", "NE003"'))

# sub out quotes and split values into vectors
v <- strsplit(gsub('"', '', d$value), ', ')  

cbind(d[rep(seq_along(v), sapply(v, length)), 1:2], 
      value=unlist(v))

#     seq start value
# 1   ch1    20 NE001
# 1.1 ch1    20 NE002
# 2   ch2    30 NE002
# 2.1 ch2    30 NE003
# 3   ch3    40 NE001
# 3.1 ch3    40 NE002
# 3.2 ch3    40 NE003

d我怀疑您的
值的格式。您确定
value
的每个元素都是以逗号分隔的带引号的子字符串吗?可能包括您向我们展示的示例数据的
dput
输出。是的,原始格式类似于
c(“NE001”、“NE001”)
等等,在
值中。我使用了gsub排除括号。@jbaums这是完全可能的<代码>数据帧(x=I(列表(1:2))