标签: strsplit

如何撤消strsplit以将多个字符合并为一个

假设我有一串字

txt = "The licenses for most software"
length(txt)
1
Run Code Online (Sandbox Code Playgroud)

我可以使用strsplit将其拆分为复合词

t = unlist(strsplit(txt, split=" "))
length(t)
5
Run Code Online (Sandbox Code Playgroud)

现在我想撤消我所做的事情。如何将5个单词重新连接到原始字符串中?

谢谢

r undo strsplit

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

如果为真,则将一列拆分为多个R并提供逻辑值

我试图将数据框中的一列拆分为多个列,这些列将原始列中的值保存为新列名.然后,如果原始中的相应列出现,则在新列中为1,如果不匹配则为0.我意识到这不是最好的解释方式,例如:

df <- data.frame(subject = c(1:4), Location = c('A', 'A/B', 'B/C/D', 'A/B/C/D'))  

#   subject Location  
# 1       1     A                                  
# 2       2     A/B                                   
# 3       3     B/C/D                                 
# 4       4     A/B/C/D
Run Code Online (Sandbox Code Playgroud)

并希望将其扩展为宽格式,例如1和0(或T和F):

#   subject    A  B  C  D
# 1       1    1  0  0  0
# 2       2    1  1  0  0
# 3       3    0  1  1  1
# 4       4    1  1  1  1  
Run Code Online (Sandbox Code Playgroud)

我已经调查tidyrseparate功能,reshape2cast功能,但似乎越来越挂了给逻辑值.任何有关该问题的帮助将不胜感激.谢谢.

r strsplit reshape reshape2 tidyr

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

根据R中的逗号分割字符串

我有以下内容:

s <- "abc, xyz, poi (cv, r2, 44, rghj), wer"
Run Code Online (Sandbox Code Playgroud)

如何拆分它,最终结果是:

c("abc", "xyz", "poi (cv, r2, 44, rghj)", "wer")
Run Code Online (Sandbox Code Playgroud)

基本上,strsplit每个逗号处的字符串,但在括号外.

text r strsplit

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

在逗号后分割字符串,不带尾随空格

正如标题已经说的,我想分割这个字符串

strsplit(c("aaa,aaa", "bbb, bbb", "ddd , ddd"), ",")
Run Code Online (Sandbox Code Playgroud)

对此

[[1]]
[1] "aaa" "aaa"

[[2]]
[1] "bbb, bbb"

[[3]]
[1] "ddd , ddd"
Run Code Online (Sandbox Code Playgroud)

因此,正则表达式必须考虑逗号后面不应出现空格。可能是骗子,但无法通过谷歌找到解决方案。

regex string r strsplit

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

在 R 中将字符串一分为二比 strsplit() 更节省内存的方法

我有一个 1.8m 字符串,我需要将其分割为一个 50 个字符串,该字符串出现一次非常接近 1.8m 字符串的开头(大约 10k 个字符)

使用strsplit()错误

long_string %>% strsplit(., fifty_character_string)

# Error: C stack usage  9065064 is too close to the limit
Run Code Online (Sandbox Code Playgroud)

我尝试用这种方法和这个问题解决特定错误,但到目前为止还没有运气。

所以现在我正在研究是否有一种更有效的内存方法来将一个很长的字符串分成两部分。我不太可能需要多次执行此操作,因此我愿意接受只需完成工作的黑客方法

r strsplit

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

将 df 整数列拆分为 R 中的单个数字

我有一个 df,其中一个变量是整数。我想将此列拆分为单独的数字。看我下面的例子

Group Number
A     456
B     3
C     18
Run Code Online (Sandbox Code Playgroud)

Group Number Digit1 Digit2 Digit3
A     456    4      5      6
B     3      3      NA     NA
C     18     1      8      NA
Run Code Online (Sandbox Code Playgroud)

r strsplit dataframe tidyverse

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

R更改数据框中的元素

正如标题所说,我正试图将数据框中的元素从一个字符更改为另一个字符.数据框如下:

g1=c("CC","DD","GG")
g2=c("AA","BB","EE")
g3=c("HH","II","JJ")

df=data.frame(g1,g2,g3)
Run Code Online (Sandbox Code Playgroud)

我希望将元素从信件格式转换为字母/字母格式(例如CC到C/C或AA到A/A)

我知道使用"strsplit"可以在列表中工作.我也知道我需要以某种方式合并:collapse ="/"

我怎样才能将strsplit函数应用于整个数据框?

我正在思考以下问题:

split=function(x)
{
  unlist(paste(strsplit(x,""),collapse="/"))
}

j=as.data.frame(apply(df,1,split))
Run Code Online (Sandbox Code Playgroud)

但它没有给出预期的结果.

更新----------------显然,以下脚本有效:

split=function(x)
{
  paste(unlist(strsplit(x,"")),collapse="/")
}

p=apply(df,c(1,2),split)
Run Code Online (Sandbox Code Playgroud)

如果有更高效或更方便的方式,请随时分享.

replace element r strsplit

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

R:使用strsplit和perl REGEX语法提取大写字母和特殊字符

你如何只提取/以下大写字母和整个字母[[:punct:]]/$[[:punct:]].

text <- c("This/ART ,/$; Is/NN something something/else A/VAFIN faulty/ADV text/ADV which/ADJD i/PWS propose/ADV as/APPR Example/NE ./$. So/NE It/PTKNEG makes/ADJD no/VAFIN sense/ADV at/KOUS all/PDAT ,/$, it/APPR Has/ADJA Errors/NN  ,/$; and/APPR it/APPR is/CARD senseless/NN again/ART ./$:")

# HOW to?
textPOS <- strsplit(text,"(   )|(?<=[[:punct:]]/\\$[[:punct:]])", perl=TRUE)
#                          ^^^ 
#                         extract only the "/" with the following capital letters
#                         and the whole "[[:punct:]]/$[[:punct:]]"

# Expected RETURN:
> textPOS
[1] "/ART" ",/$;" "/NN" "/VAFIN" "/ADV" "/ADV" "/ADJD" "/PWS" "/ADV" "/APPR" …
Run Code Online (Sandbox Code Playgroud)

regex r text-mining strsplit

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

在R中由大于1的空格进行strsplit

给定一个字符串,

mystr = "Average student score       88"
Run Code Online (Sandbox Code Playgroud)

如果有超过1个空格,我希望拆分.我希望获得以下内容:

"Average student score" "88"
Run Code Online (Sandbox Code Playgroud)

我搜索过"\ s +"会被任意数量的空格分开.

strsplit(mystr, "\\s+")
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的.在strsplit中是否有任何选项可以根据一定数量的空格(比如空格= k)或空格上的规则(比如空格> 1)来拆分字符串?

r strsplit stringr

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

如何基于位置的数字向量分割字符向量

我想基于分裂点的第二个数字向量将字符向量拆分为子字符串

vec <- "LAYRVCMTNEGHPWVSLVVQKTRLQISQDPSLNYEYLPTMGLKSFIQASLALLFGKHSQAIVENRVGGVHTVGDSGAFQLGVQFLRAWHKDARIVYIISSQKELHGLVFQDMGFTVYEYSVWDPKKLCMDPDILLNVVEQIPHGCVLVMGNIIDCKLTPSGWAKLMSM"
split.points <- c(25, 32, 55, 90, 124)
Run Code Online (Sandbox Code Playgroud)

我想在矢量中给出的位置将上面的字符split.points向量切割成六个不同的子串.

这听起来很简单,但split我知道的命令只能使用特定的正则表达式(模式)或者使用一定长度的子串.

我将不胜感激任何帮助.

split r strsplit

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

标签 统计

r ×10

strsplit ×10

regex ×2

dataframe ×1

element ×1

replace ×1

reshape ×1

reshape2 ×1

split ×1

string ×1

stringr ×1

text ×1

text-mining ×1

tidyr ×1

tidyverse ×1

undo ×1