小编use*_*187的帖子

从文本字符串中获取唯一的字符串数

我想知道如何从文本字符串中获取唯一的字符数.假设我正在寻找重复单词中的苹果,香蕉,菠萝,葡萄的重复计数.

 A<- c('I have a lot of pineapples, apples and grapes. One day the pineapples person gave the apples person two baskets of grapes')

 df<- data.frame(A) 
Run Code Online (Sandbox Code Playgroud)

假设我想获得文本中列出的所有水果的独特计数.

  library(stringr)
  df$fruituniquecount<- str_count(df$A, "apples|pineapples|grapes|bananas")
Run Code Online (Sandbox Code Playgroud)

我尝试了这个,但我得到了所有的计数.我希望答案为'3'.请提出您的想法.

r stringr tm dplyr

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

如果第一个单词还有多个单词,则在逗号后面的字符串中提取最后一个单词

我有数据的地方如下

 location<- c("xyz, sss, New Zealand", "USA", "Pris,France")
 id<- c(1,2,3)
 df<-data.frame(location,id)
Run Code Online (Sandbox Code Playgroud)

我想从数据中提取国家/地区名称.棘手的部分是,如果我只提取最后一个单词,那么我将只有一个记录(法国).

library(stringr)
df$country<- word(df$location,-1)
Run Code Online (Sandbox Code Playgroud)

关于如何从这些数据中提取国家数据的任何想法?

 id  location                      country
  1   xyz, sss, New Zealand        New Zealand
  2   USA                          USA
  3   Pris,France                  France
Run Code Online (Sandbox Code Playgroud)

r string-matching stringr stringi

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

创建月度数据和扩展数据

我有一个数据框,我想基于以下数据集创建一个不平衡的面板.

 profile<- c('lehman', 'john','oliver','stephen','picasso')
 start_date<-   c(2008-01-01, 2008-02-02,2008-04-02,2008-09-02,2009-02-02)
 end_date <-   c (2009-12-31, 2009-12-31, 2009-12-31,2009-12-31,2009-12-31)
 df<- data.frame(profile,start_date,end_date)
Run Code Online (Sandbox Code Playgroud)

我想创建两列tid和myear.Myear基本上是从开始日期开始的月份,并且基于月份直到最后结束日期不断扩展.然后我需要一个tid,其编号为01,用于myear 01-2008,02用于02-2008 ....所以12-2009为24.有人可以建议如何做到这一点吗?这是预期的输出.

 profile      start_date    end_date     tid   myear
 lehman       2008-01-01    2009-12-31   01   01-2008
 lehman       2008-01-01    2009-12-31   02   02-2008
 ...          ..            ..           ..
 lehman       2008-01-01    2009-12-31   24   12-2009
 john         2008-02-02    2009-12-31   02   02-2008
 john         2008-02-02    2009-12-31   03   03-2008
 ..           ..             ..          ..
 john         2008-02-02    2009-12-31   24   12-2009
 ...          ..            ...          ..
 picasso      2009-02-02    2009-12-31   14   02-2009
 picasso      2009-03-02    2009-12-31   15   03-2009     
 ...          ...           ...          ..
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyr

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

从目录导入多个json文件并附加数据

我正在尝试将多个json文件读取到工作目录中,以进一步转换为数据集。我在目录json中有文件text1,text2,text3。这是我写的代码:

setwd("Users/Desktop/json")
temp = list.files(pattern="text*.")
myfiles = lapply(temp, read.delim)
library("rjson")
json_file <- "myfiles"
library(jsonlite)
out <- jsonlite::fromJSON(json_file)
out[vapply(out, is.null, logical(1))] <- "none"
data.frame(out, stringsAsFactors = FALSE)[,1:5]
View(out)
Run Code Online (Sandbox Code Playgroud)

我大约有200个文件,所以我想知道是否可以导入json文件。

谢谢

json r rjson jsonlite

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

从字符串和文本数据中提取年份

我需要从具有这些性质的向量中提取开始年和结束年。

 yr<- c("June 2013 – Present (2 years 9 months)", "January 2012 – June 2013 (1 year 6 months)","2006 – Present (10 years)","2002 – 2006 (4 years)")


 yr
 June 2013 – Present (2 years 9 months)
 January 2012 – June 2013 (1 year 6 months)
 2006 – Present (10 years)
 2002 – 2006 (4 years)
Run Code Online (Sandbox Code Playgroud)

我期望这样的输出。有人有建议吗?

 start_yr       end_yr

2013            2016
2012            2013
2006            2016
2002            2006
Run Code Online (Sandbox Code Playgroud)

regex r lubridate stringi

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

用于创建多个数据框和赋值的 for 循环

我想创建多个数据框并根据年份分配它们。我看过其他帖子,但我无法为我的案例复制它。例如,

a <- c(1,2,3,4)
b <- c('kk','km','ll','k3')
time <- (2001,2001,2002,2003)
df <- data.frame(a,b,time)
myvalues <- c(2001,2002,2003)
for (i in 1:3) 
{ y[[i]]<- df[df$time=myvalues[[i]],}
Run Code Online (Sandbox Code Playgroud)

我想为 2001、2002 和 2003 年创建三个数据框 y1、y2、y3。任何建议如何使用 for 循环?

for-loop r dplyr

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

提取特殊字符“/”之间的倒数第二个单词

我想提取“/”符号后的倒数第二个字符串。例如,

url<- c('https://example.com/names/ani/digitalcod-org','https://example.com/names/bmc/ambulancecod.org' )
df<- data.frame (url)
Run Code Online (Sandbox Code Playgroud)

我想从两者之间的最后一个单词中提取第二个单词 // 并希望获取单词“ani”和“bmc”

所以,我尝试了这个

 library(stringr)
 df$name<- word(df$url,-2)
Run Code Online (Sandbox Code Playgroud)

我需要输出如下:

name 
ani
bmc 
Run Code Online (Sandbox Code Playgroud)

regex r stringr stringi

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

如何在R中的数据框中获取列表的最大值

我正在尝试创建一个新列,它为我获取数据框中列表的最大值。我想知道如何从 df$value 列创建名为 maxvalue 的列,即,我想在列中获取该列表的最大值。

  x <- c( "000010011100011111001111111100", "011110", "0000000")
  y<- c(1, 2,3)
 df<- data.frame(x,y)
 library(stringr)
 df$value <- strsplit(df$x, "[^1]+", perl=TRUE)
  # expected output  ( I have tried the following)
 df$maxvalue<- max(df$value) 
  df$maxvalue
   8 
   4
   0
Run Code Online (Sandbox Code Playgroud)

string r list dataframe stringr

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

将R文件转换为缺少字符串值的Stata

我将R文件转换为Stata格式时出错.我能够将数字转换为Stata文件,但是当我包含字符串时,我收到以下错误:

library(foreign)
write.dta(newdata, "X.dta")

Error in write.dta(newdata, "X.dta") : 
  empty string is not valid in Stata's documented format
Run Code Online (Sandbox Code Playgroud)

我有很少的字符串,如位置,名称等,它们缺少值,这可能导致这个问题.有办法处理这个吗?.

r stata

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

在字符串中查找重复的字母

我有一个字符串,我想找到重复的字母.例如,

A <- c('A-B-A-B-C', 'A-B-C-D', 'A-B-A-C-D-E-F', 'A-B-A-B')
Run Code Online (Sandbox Code Playgroud)

我想创建一个向量B,如果没有重复的字母,则取值为0,否则为1.

B <- c('1','0','1','1')
Run Code Online (Sandbox Code Playgroud)

regex r

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

获取字符串中的第一个单词

我想从向量中提取第一个字符串.例如,

 y<- c('london/hilss', 'newyork/hills', 'paris/jjk')
Run Code Online (Sandbox Code Playgroud)

我想在符号"/"之前得到字符串,即

  location 
  london
  newyork
  paris
Run Code Online (Sandbox Code Playgroud)

regex r stringr

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

标签 统计

r ×11

stringr ×5

regex ×4

dplyr ×3

stringi ×3

dataframe ×1

for-loop ×1

json ×1

jsonlite ×1

list ×1

lubridate ×1

rjson ×1

stata ×1

string ×1

string-matching ×1

tidyr ×1

tm ×1