假设我有一串字
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个单词重新连接到原始字符串中?
谢谢
我试图将数据框中的一列拆分为多个列,这些列将原始列中的值保存为新列名.然后,如果原始中的相应列出现,则在新列中为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)
我已经调查tidyr及separate功能,reshape2和cast功能,但似乎越来越挂了给逻辑值.任何有关该问题的帮助将不胜感激.谢谢.
我有以下内容:
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每个逗号处的字符串,但在括号外.
正如标题已经说的,我想分割这个字符串
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)
因此,正则表达式必须考虑逗号后面不应出现空格。可能是骗子,但无法通过谷歌找到解决方案。
我有一个 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)
我尝试用这种方法和这个问题解决特定错误,但到目前为止还没有运气。
所以现在我正在研究是否有一种更有效的内存方法来将一个很长的字符串分成两部分。我不太可能需要多次执行此操作,因此我愿意接受只需完成工作的黑客方法
我有一个 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) 正如标题所说,我正试图将数据框中的元素从一个字符更改为另一个字符.数据框如下:
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)
如果有更高效或更方便的方式,请随时分享.
你如何只提取/以下大写字母和整个字母[[: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) 给定一个字符串,
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)来拆分字符串?
我想基于分裂点的第二个数字向量将字符向量拆分为子字符串
vec <- "LAYRVCMTNEGHPWVSLVVQKTRLQISQDPSLNYEYLPTMGLKSFIQASLALLFGKHSQAIVENRVGGVHTVGDSGAFQLGVQFLRAWHKDARIVYIISSQKELHGLVFQDMGFTVYEYSVWDPKKLCMDPDILLNVVEQIPHGCVLVMGNIIDCKLTPSGWAKLMSM"
split.points <- c(25, 32, 55, 90, 124)
Run Code Online (Sandbox Code Playgroud)
我想在矢量中给出的位置将上面的字符split.points向量切割成六个不同的子串.
这听起来很简单,但split我知道的命令只能使用特定的正则表达式(模式)或者使用一定长度的子串.
我将不胜感激任何帮助.