【问题标题】:How do I extract a name from the end of a string?如何从字符串末尾提取名称?
【发布时间】:2016-01-20 05:12:03
【问题描述】:

这是我第一次发布问题。我在格式化从 json 文件中读取的一些数据时遇到问题。我只是想从每一行中提取名称。这是第一行的示例。

> json_data$name[1]
[[1]]
[1] "\n        "           "\n        jim bob"

我已经尝试了许多不同的东西,我在这里用谷歌搜索和搜索过,但我一点运气都没有。我需要数据如下所示:

[1] jim bob

我所做的一切似乎都变成了这样:

[1] "c(\"\n        \", \"\n        jim bob\")"  

有什么想法吗?

【问题讨论】:

  • str_extract(x, "\\b[\\w\\s]+\\b(?=\"\\))")
  • @CausedByMonkey 我修改了代码并作为答案发布

标签: r string text gsub


【解决方案1】:

我们可以使用gsub

v1 <- gsub("\n +", "", str1) 
v1[nzchar(v1)]
#[1] "jim bob"

如果我们有list,则使用lapply 循环遍历list 元素。考虑许多元素的 'json_data$name[1]is alist`

 lapply(json_data$name[1], function(x) {
            v1 <- gsub("\n +", "", x)
             v1[nzchar(v1)]
             })

数据

str1 <- c("\n        ",           "\n        jim bob")

【讨论】:

  • v1 &lt;- gsub("\n +", "", json_data$name[1]) v1[nzchar(v1)] 导致`[1] "c(\"\\n \", \"\\n jim bob\")" `@akrun
  • @CausedByMonkey 根据我提供的数据中的示例,它给出了预期。你能用 json_data$name[1] 的dput 更新你的帖子吗
  • @CausedBy Monkey,我认为你的“名字”是list 试试gsub("\n +", "", json_data$name[1][[1]])
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 2023-02-23
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
相关资源
最近更新 更多