从r中的字符串中提取单词

时间:2018-04-27 16:50:13

标签: r text frame word

我的数据框的每一行都有以下文字作为示例:df:

[{'id': 16, 'name': 'Soccer'}, {'id': 35, 'name': 'Basketball'}, {'id': 10751, 'name': 'Boxing'}]

有没有办法从这段文字中提取单词(足球,篮球,拳击)?对不起,我是R。

中的文本分析新手

2 个答案:

答案 0 :(得分:3)

看起来你有一个JSON输入字符串。您可以使用jsonlite::fromJSON解析JSON字符串,并提取相关列name

# Sample string
ss <- "[{'id': 16, 'name': 'Soccer'}, {'id': 35, 'name': 'Basketball'}, {'id': 10751, 'name': 'Boxing'}]";

# Parse JSON
library(jsonlite);
df <- fromJSON(txt = gsub("'", "\"", ss));

# Extract words
df$name;
#[1] "Soccer"     "Basketball" "Boxing"

答案 1 :(得分:0)

可能类似以下内容。

x <- "[{'id': 16, 'name': 'Soccer'}, {'id': 35, 'name': 'Basketball'}, {'id': 10751, 'name': 'Boxing'}]"
g <- gregexpr("[[:alpha:]]+", x)
y <- unlist(regmatches(x, g))
y[y != "id" & y != "name"]
#[1] "Soccer"     "Basketball" "Boxing"

最后一条指令的另一种可能性是使用%in%

y[!y %in% c("id", "name")]
#[1] "Soccer"     "Basketball" "Boxing"

像这样你可以有一个不需要的字符串向量,例如c("id", "name"),并避免长连接&