小编lmc*_*ane的帖子

R tm package vcorpus:将语料库转换为数据帧时出错

我正在使用该tm软件包使用以下代码清理一些数据:

mycorpus <- Corpus(VectorSource(x))
mycorpus <- tm_map(mycorpus, removePunctuation)
Run Code Online (Sandbox Code Playgroud)

然后,我想将语料库转换回数据框,以便导出包含数据帧原始格式的数据的文本文件.我尝试过以下方法:

dataframe <- as.data.frame(mycorpus)
Run Code Online (Sandbox Code Playgroud)

但是这会返回一个错误:

"as.data.frame.default中的错误.(mycorpus):无法将类"c(vcorpus,> corpus")强制转换为data.frame

如何将语料库转换为数据框?

r corpus tm

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

根据2列删除重复值

我想删除基于在一个数据帧2列匹配重复值,v2v4被删除行之间必须匹配.

> df

   v1  v2  v3   v4  v5
1  7   1   A  100  98 
2  7   2   A  100  97
3  8   1   C   NA  80
4  8   1   C   78  75
5  8   1   C   78  62
6  9   3   C   75  75
Run Code Online (Sandbox Code Playgroud)

为了结果

> df

   v1  v2  v3   v4  v5
1  7   1   A  100  98 
2  8   1   C   NA  80
3  8   1   C   78  75
4  9   3   C   75  75 …
Run Code Online (Sandbox Code Playgroud)

r duplicates

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

使用regex将URL解压缩到新的数据框列中

我想使用正则表达式从数据框中的文本中提取所有URL到新列.我有一些旧的代码,我用来提取关键字,所以我想调整代码为正则表达式.我想将正则表达式保存为字符串变量并在此处应用:

data$ContentURL <- apply(sapply(regex, grepl, data$Content, fixed=FALSE), 1, function(x) paste(selection[x], collapse=','))
Run Code Online (Sandbox Code Playgroud)

似乎fixed=FALSE应该告诉grepl它是一个正则表达式,但R不喜欢我试图将正则表达式保存为:

regex <- "http.*?1-\\d+,\\d+"
Run Code Online (Sandbox Code Playgroud)

我的数据组织在这样的数据框中:

data <- read.table(text='"Content"     "date"   
 1     "a house a home https://www.foo.com"     "12/31/2013"
 2     "cabin ideas https://www.example.com in the woods"     "5/4/2013"
 3     "motel is a hotel"   "1/4/2013"', header=TRUE)
Run Code Online (Sandbox Code Playgroud)

希望看起来像:

                                           Content       date              ContentURL
1               a house a home https://www.foo.com 12/31/2013     https://www.foo.com
2 cabin ideas https://www.example.com in the woods   5/4/2013 https://www.example.com
3                                 motel is a hotel   1/4/2013                        
Run Code Online (Sandbox Code Playgroud)

regex r grepl

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

R粘贴属于相同ID的数据框行

我试图将来自同一用户的文本数据粘贴到一起,该用户当前按名称组织在不同的行中:

df <- read.table(header = TRUE, text = 'name text
"katy" "tomorrow I go"
"lauren" "and computing"
"katy" "to the store"
"stephanie" "foo and foos"')
Run Code Online (Sandbox Code Playgroud)

结果是:

df2 <- read.table(header=TRUE, text='name text
"katy" "tomorrow I go to the store"
"lauren" "and computing"
"stephanie" "foo and foos"')
Run Code Online (Sandbox Code Playgroud)

建议?

r paste

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

R删除数据框中的多个文本字符串

R.的新功能我希望从数据框中删除某些单词.由于有多个单词,我想将这个单词列表定义为字符串,并使用gsub删除.然后转换回数据帧并保持相同的结构.

wordstoremove <- c("ai", "computing", "ulitzer", "ibm", "privacy", "cognitive")

a
id                text time      username          
 1     "ai and x"        10     "me"          
 2     "and computing"   5      "you"         
 3     "nothing"         15     "everyone"     
 4     "ibm privacy"     0      "know"        
Run Code Online (Sandbox Code Playgroud)

我想的是:

a2 <- apply(a, 1, gsub(wordstoremove, "", a)
Run Code Online (Sandbox Code Playgroud)

但在转换回数据框之前,这显然不起作用.

r keyword gsub

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

R共生矩阵水平数据

R新手.我正在尝试使用水平数据创建共生矩阵.我想知道哪些元素在行中共同出现'TRUE'.

每行代表一篇文章.每篇文章都有许多标记元素存在与否的真/假变量.这里有100个元素,缩写为10k以上.所以10,000 x 101数据帧.

 dat <- read.table(text='"article"     "element1"   "element2"   "element3"   "element4"
 1     "a house a home"     "TRUE"   "TRUE"   "FALSE"   "FALSE"
 2     "cabin in the woods"     "TRUE"   "TRUE" "FALSE" "FALSE"
 3     "motel is a hotel"   "TRUE"    "FALSE"   "TRUE"   "FALSE"', header=TRUE)
Run Code Online (Sandbox Code Playgroud)

我尝试跟随这个共现问题(创建共生矩阵),但似乎由于数据的组织方式不同,这种方法不起作用.

如果100个元素x 100个元素,那么有用的将是矩阵.有人有建议吗?

r matrix

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

R-lang:如果等于引号,则删除第一个字符

R新手。我正在尝试从数据框中的行的开头和结尾删除“”。如果引号不是第一个或最后一个字符,我不想删除。数据的数据框,其中每一行都是文本的数据点。

引号不是字符串,而是文本的一部分。

数据框的一行看起来像这样:

x<-  '"hello world. She said, "hello again" it was a pleasant response"'
Run Code Online (Sandbox Code Playgroud)

结果应该是:

x2 <- 'hello world. She said, "hello again" it was a pleasant response"'
Run Code Online (Sandbox Code Playgroud)

我认为这会起作用:

gsub("\\n\"", "", df)
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用。有什么建议吗?

regex r gsub

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

R:如果条件适用和nchar

如果在数据帧的列中有任何长度超过9个字符的字符串,我正在尝试为我的数据编写测试.

当使用apply时,我对如何使用if语句将nchar作为函数运行感到困惑.我以为会是这样的:

apply(df$a, 2, function(x) if nchar(x>9), nchar(x))
Run Code Online (Sandbox Code Playgroud)

但是我得到一个错误:...中的意外符号

我在这里错过了什么?

if-statement r function apply

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

R:日期格式转换

我有以下日期格式的Twitter数据:

date <- "Wed Jan 07 20:57:02 +0000 2015"
Run Code Online (Sandbox Code Playgroud)

有谁知道这是一个标准的日期格式?任何可以将它转换为mdy的包?

r date

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

R:坐标的RegEx

RI的新手使用stringr包中的str_extract_all来尝试提取当前采用以下格式的坐标:

coordinate <- "{u'type': u'Point', u'coordinates': [-2.824602, 53.235397]}"
Run Code Online (Sandbox Code Playgroud)

我想提取此文本旁边的相应列中的第一个坐标,以及另一列中的第二个坐标.

我想使用perl表达式来提取,但有点坚持如何做到这一点.

结果看起来像:

coordinate x y
"{u'type': u'Point', u'coordinates': [-2.824602, 53.235397]}"    -2.824602    53.235397
Run Code Online (Sandbox Code Playgroud)

regex r

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

标签 统计

r ×10

regex ×3

gsub ×2

apply ×1

corpus ×1

date ×1

duplicates ×1

function ×1

grepl ×1

if-statement ×1

keyword ×1

matrix ×1

paste ×1

tm ×1