标签: strsplit

rrs中strsplit()的奇怪行为?

我想使用strsplit()将字符串x = "a,b,"(最后一个位置的逗号)拆分为向量.c("a","b","")

结果是:

>strsplit(x,',')
[[1]]
[1] "a" "b"
Run Code Online (Sandbox Code Playgroud)

我想有第三个组件(空字符串或NULL).

该功能read.csv(x)可以管理,但我认为strsplit()应该按照我的预期行事.Python给出了c("a","b","").

也许有一些strsplit()我不知道的选择?

r strsplit

0
推荐指数
1
解决办法
135
查看次数

删除重复的字符串后,合并data.frame中的列

我有一个数据帧data的字符向量如下.

x <- c("kal, Kon, Jor, Kara", "Bruce, Helena, Martha, Terry", "connor, oliver, Roy",  
       "Alan, Guy, Simon, Kyle")
y <- c("Mon, Cir, John, Jor", "Damian, Terry, Jason", "Mia, Roy", "John, Cary")
data <- data.frame(x,y, stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

我试图连接两列中的字符串xy新列z.我想删除重复项并,在连续连接字符串之前对分隔的单词进行排序.我能够达到以下目的.

x <- strsplit(data$x, split=", ")
y <- strsplit(data$y, split=", ")
data$z <- sapply(1:length(x), function(i) paste(sort(union(x[[i]], y[[i]])), 
                                                collapse=", "))
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法来创建中间列表,可能使用data.table

string r strsplit dataframe data.table

0
推荐指数
1
解决办法
159
查看次数

如何在R中输入一定数量的单词和数字之后拆分一串文本?

我想在遇到时间之后将我的文本分成8个单词和数字.

文字示例:

s <- 'random random random 19:49 0-2 H 2 ABC TREE LAKE #88 TURTLE random random 03:32 43-21 V 8 XYZ LOG #72 FIRE random random random'
Run Code Online (Sandbox Code Playgroud)

我希望如何拆分文本的示例.

 'random random random 19:49 0-2 H 2 ABC TREE LAKE #88 TURTLE
  random random 03:32 43-21 V 8 XYZ DOG LOG #72 FIRE
  random random random'
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过多种方式找到时间

str_extract(str_extract(s, "[:digit:]*:"), "[:digit:]*")
Run Code Online (Sandbox Code Playgroud)

但我不确定如何在时间之后分割八个单词和数字.任何帮助将不胜感激.

split r strsplit stringr

0
推荐指数
1
解决办法
140
查看次数

如何从文本中提取数字?

我有流动的文本字符串:

string <- "['CBOE SHORT-TERM VIX FUTURE DEC 2016', 81.64],\n\n    ['CBOE SHORT-TERM VIX FUTURE JAN 2017', 18.36]"
Run Code Online (Sandbox Code Playgroud)

是否有一种从文本中提取数字元素的简单方法,而不必使用:

string_table <- strsplit(string, " ")
Run Code Online (Sandbox Code Playgroud)

然后选择第n个元素并继续strsplit直到我拥有我需要的东西.

结果应该是:

result <- c(2016, 81, 64, 2017, 18, 36)
Run Code Online (Sandbox Code Playgroud)

谢谢.

r character strsplit

0
推荐指数
1
解决办法
9656
查看次数

转换通过strsplit获得的列表以合并常见类别

我有一个类似下面的列表:

# Initial object
vec <- c("levelA-1", "levelA-2", "levelA-3",
         "levelB-1", "levelB-2", "levelB-3")
lstVec <- strsplit(x = vec, split = "-")
Run Code Online (Sandbox Code Playgroud)

我想到达以下结构列表:

lstRes <- list(levelA = list(1:3),
               lvelB = list(1:3))
Run Code Online (Sandbox Code Playgroud)

笔记

该列表具有以下特征:

  • 第一级元素被转换为不同的列表
  • 通过strsplit这些列表的元素创建的第二级元素

string r list strsplit

0
推荐指数
1
解决办法
81
查看次数

在不使用分隔符的情况下使用不同的数组进行拆分

请你帮助我好吗?我需要分割一个没有分隔符的字符串。我需要将字符串拆分为不同的类型。例如,以下字符串应生成与输出相同的列表:

“ ak =围嘴+ c *(数据+1005)”

“ ak =围嘴+ c *(数据+1005)”

“ ak =围嘴+ c *(数据+ 1005)”

输出应为:

['ak','=','bib','+','c','*','(','data','+','1005',')']

谢谢!

string split list strsplit python-3.x

0
推荐指数
1
解决办法
21
查看次数

如何使用 R 拆分没有分隔符的合并/粘合单词

我使用 R 中的 rvest 使用以下代码从本文页面中抓取文本关键字:

#install.packages("xml2") # required for rvest
library("rvest") # for web scraping
library("dplyr") # for data management

#' start with get the link for the web to be scraped
page <- read_html("https://www.sciencedirect.com/science/article/pii/S1877042810004568")
keyW <- page %>% html_nodes("div.Keywords.u-font-serif") %>% html_text() %>% paste(collapse = ",")
Run Code Online (Sandbox Code Playgroud)

它给了我:

> keyW    
[1] "KeywordsPhysics curriculumTurkish education systemfinnish education systemPISAphysics achievement"
Run Code Online (Sandbox Code Playgroud)

使用以下代码行从字符串中删除单词“Keywords”及其之前的所有内容后:

keyW <- gsub(".*Keywords","", keyW)
Run Code Online (Sandbox Code Playgroud)

新的密钥W是:

[1] "Physics curriculumTurkish education systemfinnish education systemPISAphysics achievement"
Run Code Online (Sandbox Code Playgroud)

但是,我想要的输出是这个列表:

[1] "Physics curriculum" "Turkish education system" "finnish education …
Run Code Online (Sandbox Code Playgroud)

r text-mining gsub strsplit rvest

0
推荐指数
1
解决办法
93
查看次数

strsplit符号"|" 导致R中的非字符错误消息

非常感谢你的帮助.

是.我应该提供一个更好的例子.

这是我的输入文件(3columns.csv)

    Patients    Markers Studies
1   AA         EXX         1111
2   BB         ABCB1           2222|3333|5555|6666
3   CC         CCAN        4444|5555
4   DD         ABCB1           6666
Run Code Online (Sandbox Code Playgroud)

这是我的输出文件

    Patients    Markers Studies
1   AA         EXX         1111
2   BB         ABCB1           2222
2   BB         ABCB1           3333
2   BB         ABCB1           5555
2   BB         ABCB1           6666
3   CC         CCAN        4444
3   CC         CCAN        5555
4   DD         ABCB1           6666
Run Code Online (Sandbox Code Playgroud)

(1)根据以下命令,我对第6行进行了如下更改

sapply(unlist(strsplit(as.character(df[x,3]),"\\|")),c,df[x,1:2],USE.NAMES=FALSE) 
Run Code Online (Sandbox Code Playgroud)

(2)我试着将df文件调用为

df <- read.csv(file="3columns.csv",header=TRUE,stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

(3)我\\之前也尝试过添加|

所有这些方法都不起作用,所以我怀疑我可能误解了下面的答复.你介意给我一些指导吗?

最诚挚的问候,凯瑟琳

------原始问题--------------------------

我想使用R的strsplit命令根据符号分隔单元格"|".

但是,会显示一条错误消息:

Error in strsplit(df[x, …
Run Code Online (Sandbox Code Playgroud)

r strsplit

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

特定角色的strsplit,证明该角色不应该被特定角色所遵循

我想在遇到"a"时拆分字符串,条件是"a"不应该跟"b"

string <- "abcgualoo87ahhabta"
Run Code Online (Sandbox Code Playgroud)

我应该得到输出

string <- [1]abcgua
[2]loo87a
[3]hhabta
Run Code Online (Sandbox Code Playgroud)

r pattern-matching strsplit

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

将1列拆分为数据框中的2列

这是我的数据框架.

    > data
       Manufacturers  
1   Audi,RS5  
2   BMW,M3  
3   Cadillac,CTS-V  
4   Lexus,ISF
Run Code Online (Sandbox Code Playgroud)

所以我想分割制造商和模型,像这样,

    > data
    Manufacturers       Models
1   Audi                RS5  
2   BMW                 M3  
3   Cadillac            CTS-V  
4   Lexus               ISF
Run Code Online (Sandbox Code Playgroud)

我很感激这个问题的任何帮助.非常感谢.

split r strsplit

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