标签: strsplit

根据观察结果复制和修改数据帧的行 [R]

这是这个问题的后续内容: Duplicating Observations of a dataframe, but also Replace Specific Variable Values in R

我尝试尽可能简洁地写,同时提供所有必要的信息。在当前示例中,我有一个如下所示的 df:

df<-data.frame(alpha=c(1, "3, 4", "2, 4, 5", 2, 1, 3, "1, 2", "1, 2, 3"), 
           beta=c("2, 4", "3, 4", 1, 3, 3, "1, 4", "1, 2", "1, 2, 3"),
           color=c("red", "yellow"))


#    alpha    beta  color
#1       1    2, 4    red
#2    3, 4    3, 4 yellow
#3 2, 4, 5       1    red
#4       2       3 yellow
#5       1       3    red
#6       3    1, 4 yellow …
Run Code Online (Sandbox Code Playgroud)

r strsplit dataframe combn

4
推荐指数
1
解决办法
217
查看次数

查找以逗号分隔的列中的所有唯一值

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

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)
Run Code Online (Sandbox Code Playgroud)

我的输出应该返回所有唯一观察者的列表 - 所以:

A,B,C,E,F
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下命令对 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"
Run Code Online (Sandbox Code Playgroud)

r strsplit

4
推荐指数
1
解决办法
2584
查看次数

分割字符串并保留分隔符

假设我有一个字符串:

StringA/StringB/StringC
Run Code Online (Sandbox Code Playgroud)

有什么方法可以按/符号拆分该字符串,但将其保留在返回值中:

StringA
/StringB
/StringC
Run Code Online (Sandbox Code Playgroud)

string r strsplit stringr

4
推荐指数
1
解决办法
399
查看次数

在Matlab路径中添加一个函数

我试图将该strsplit函数添加到我的MATLAB路径,但我不知道该怎么做.

链接:strsplit功能

我正在尝试将该函数用于我的工作,但不知何故,该功能在我目前拥有的MATLAB版本中不存在.

matlab function strsplit

3
推荐指数
1
解决办法
2万
查看次数

R:拆分数字字符串

我正在尝试拆分40位数字的字符串(即拆分1234567891234567891234567891 2 3 4等)

遗憾的是strsplit它不起作用,因为它需要字符,并且使用转换字符串as.character不起作用,因为它非常长并且R自动切断长数字的小数(最大值为22位小数).因此,我最终得到"1.2345e+35"一个字符串,而不是完整的数字.

是否存在strsplit十进制截止问题的数字变体或解决方法?我似乎无法在stackoverflow上找到答案,但如果之前已经回答过,请道歉.提前致谢!

string r strsplit

3
推荐指数
1
解决办法
1万
查看次数

当一个变量实际上是两列时,expand.grid

我有一个区,县和年的数据集.如果某个地区/县组合在任何一年发生,我希望每年都能实现这种组合.以下是我想到的两种方法.第一种方法使用函数来创建区,县和年的组合,并且只需要六行代码.底层方法使用了组合paste,expand.grid并且strsplit更加复杂/复杂.

可能有比上述更有效的方法.例如,是否有一种方法expand.grid可以实现区域/县/年组合,可能只有1或2行代码?

谢谢你的任何建议.我的职能可以胜任,但这个问题对我来说是一个学习的机会.我更喜欢基地R.

以下是示例数据集:

df.1 <- read.table(text = '
    state    district    county   year   apples
       AA          EC        A    1980     100
       AA          EC        B    1980      10
       AA          EC        C    1980     150
       AA           C        G    1980     200
       AA           C    other    1980      20
       AA           C        I    1980     250
       AA          WC        R    1980     300
       AA          WC        S    1980      30
       AA          WC     other   1980     350
       AA          EC        A    1999    1100
       AA          EC        D    1999     110
       AA          EC        E …
Run Code Online (Sandbox Code Playgroud)

merge r unique paste strsplit

3
推荐指数
1
解决办法
1727
查看次数

在大数据中操作字符串的最佳方法

我有一个67MM的行data.table,人名和姓氏用空格分隔.我只需要为每个单词创建一个新列.

这是一小部分数据:

n <- structure(list(Subscription_Id = c("13.855.231.846.091.000", 
"11.156.048.529.090.800", "24.940.584.090.830", "242.753.039.111.124", 
"27.843.782.090.830", "13.773.513.145.090.800", "25.691.374.090.830", 
"12.236.174.155.090.900", "252.027.904.121.210", "11.136.991.054.110.100"
), Account_Desc = c("AGUAYO CARLA", "LEIVA LILIANA", "FULLANA MARIA LAURA", 
"PETREL SERGIO", "IPTICKET SRL", "LEDESMA ORLANDO", "CATTANEO LUIS RAUL", 
"CABRAL CARMEN ESTELA", "ITURGOYEN HECTOR", "CASA CASILDO"), 
    V1 = c("AGUAYO", "LEIVA", "FULLANA", "PETREL", "IPTICKET", 
    "LEDESMA", "CATTANEO", "CABRAL", "ITURGOYEN", "CASA"), V2 = c("CARLA", 
    "LILIANA", "MARIA", "SERGIO", "SRL", "ORLANDO", "LUIS", "CARMEN", 
    "HECTOR", "CASILDO"), V3 = c(NA, NA, "LAURA", NA, NA, NA, 
    "RAUL", "ESTELA", NA, NA), `NA` = …
Run Code Online (Sandbox Code Playgroud)

r strsplit stringr data.table

3
推荐指数
1
解决办法
555
查看次数

在R中使用strsplit的sapply()

我找到了这段代码:

string = c("G1:E001", "G2:E002", "G3:E003")
> sapply(strsplit(string, ":"), "[", 2)
[1] "E001" "E002" "E003"
Run Code Online (Sandbox Code Playgroud)

清楚地strsplit(string, ":")返回大小为3的向量,其中每个组件i是包含Gi和的大小为2的向量E00i.

但为什么另外两个论点"[", 2只能选择那些E00i?据我所知,函数接受的唯一参数是:

sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE) 
Run Code Online (Sandbox Code Playgroud)

r strsplit

3
推荐指数
2
解决办法
5795
查看次数

将多个列拆分为多行

我正在处理一组非常原始的数据,需要对其进行整形才能使用它.我试图根据分隔符拆分选定的列'|'

d <- data.frame(id = c(022,565,893,415),
     name = c('c|e','m|q','w','w|s|e'), 
     score = c('e','k|e','e|k|e', 'e|o'))
Run Code Online (Sandbox Code Playgroud)

是否可以将数据帧拆分为一个,以便最终看起来像这样.

df <- data.frame(id = c(22,22,565,565,565,565,893,893,893,415,415,415,415,415,415),
            name = c('c','e','m','m','q','q','w','w','w','w','w','s','s','e','e'),
            score = c('e','e','k','e','k','e','e','k','e','e','o','e','o','e','o'))
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试了各种不同的字符串拆分功能,但没有太多运气:(

有人可以帮忙吗?

split r strsplit splitstackshape

3
推荐指数
1
解决办法
1172
查看次数

用多个字符分割字符串

我想通过向量中定义的多个分隔符来分割字符:

text1   <- "aweoiutw839572/)(&2aslk2468" 
text2   <- "147we547iu5erhg24tzu" 
dat <-  rbind(text1, text2)
vector <- c("we", "iu", "24")
Run Code Online (Sandbox Code Playgroud)

结果应该是:

var1 del1 var2 del2  var3                del3 var4
a    we   o    iu    tw839572/)(&2aslk   24   68
147  we   547  iu    5erhg               24   tzu
Run Code Online (Sandbox Code Playgroud)

strsplit什么想法吗?

r character delimiter strsplit

3
推荐指数
1
解决办法
322
查看次数