【问题标题】:How can I choose specific parts of a string? [duplicate]如何选择字符串的特定部分? [复制]
【发布时间】:2019-03-28 19:35:44
【问题描述】:

我需要从转推中选择 Twitter 句柄名称并创建用户名列表。我想知道如何在以“@”开头的字符串中选择文本。这是转发的示例。

@MyBrianLeyh @IngrahamAngle @TombStoneBub @MeticulousPaul @kjross1970 @RealTT2020 @busylizzie48 @LaylaAlisha11...

谢谢!

我已经在 Excel 上尝试了 MID 功能来选择用户名。但是,我必须指定(部分)字符串的长度。用户名有不同的长度。所以结果并不准确。

【问题讨论】:

  • help("regex")help("gsub")
  • 您需要 R 或 Excel 中的解决方案吗?
  • sub("^@", "", c("@MyBrianLeyh","@IngrahamAngle","@TombStoneBub")) ?
  • @RonakShah (1) 可能想要 gsub (2) 如果在字符向量的元素之一中除了用户名之外还有其他任何内容
  • 我试过 gsub,正如@duckmayr 所说,它没有正确识别句柄。我很想知道如何解决这个问题。

标签: r sna


【解决方案1】:

在这里,我使用带有一些 Twitter 句柄和随机文本的字符串作为示例。我使用strapplyc 提取@ 和空格\\ 之间的所有文本。

# Test string
test <- "@MyBrianLeyh @IngrahamAngle @TombStoneBub @MeticulousPaul @kjross1970 @RealTT2020 This is part of a tweet @busylizzie48 @LaylaAlisha11 This is another part"

# Load library
library(gsubfn)
#> Loading required package: proto

# Extract all handles between @ and a space
strapplyc(test, "@(.*?)\\ ", simplify = c)
#> [1] "MyBrianLeyh"    "IngrahamAngle"  "TombStoneBub"   "MeticulousPaul"
#> [5] "kjross1970"     "RealTT2020"     "busylizzie48"   "LaylaAlisha11"

reprex package (v0.2.1) 于 2019 年 3 月 28 日创建

【讨论】:

  • 我尝试了一个包含转发列表的 csv 文件。它返回每个单元格中的用户名列表。但是,该列表不会将句柄映射回每条推文。是否有任何命令可以在同一行的不同列中列出每条推文中提到的每个句柄?
  • @ChamilRathnayake 没有可重复的例子很难说。您可以编辑您的问题以包含您正在使用的数据结构(或数据结构的子集)吗?例如,使用dput
  • 这是我试过的。我在 csv 文件中转发了推文。#=========library(gsubfn) 句柄
猜你喜欢
  • 1970-01-01
  • 2018-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多