我是R的新手,我需要删除一个单词,以及后面的引号,从dataframe中的向量中删除。
以下是我所拥有的一点:
c("'character': 'Ted the Bellhop', 'credit_id': '52fe420dc3a36847f80001b7', 2",
"'character': 'Man', 'credit_id': '52fe420dc3a36847f800018b', 2",
"'character': 'Angela', 'credit_id': '52fe420dc3a36847f8000183', 1")我正在处理一个大型数据集,因此我需要找到一种方法来删除“字符”:以及后面的内容(“”、“Man”等等)。
为此,我尝试使用fromJSON,但它无法工作,所以我选择手动删除。我能够删除其中只有数字的字段,使用:
x <- gsub("'cast_id': [[:digit:]]+,", "", x)发布于 2019-04-11 02:37:45
这应该可以做到:
x <- gsub("'character': '[^']*',", "", x)这与您对cast_id字段所做的几乎一样,只不过它将删除与正则表达式'[^']*'匹配的值,而不是数字。请将此理解为:
[^']:除'以外的任何字符[^']*:与上面相同,重复0次或多次'[^']*':和上面一样,用单引号包装希望这是有意义的。
发布于 2019-04-11 02:00:16
我仍然不清楚你的预期产出,这就是你想要的吗?
sub("^.+\\s(?='credit_id')", "", ss, perl = T)
#[1] "'credit_id': '52fe420dc3a36847f80001b7', 2"
#[2] "'credit_id': '52fe420dc3a36847f800018b', 2"
#[3] "'credit_id': '52fe420dc3a36847f8000183', 1"或者这个?
sub("^.+\\s('credit_id': '\\w+'),.+$", "\\1", ss, perl = T)
#[1] "'credit_id': '52fe420dc3a36847f80001b7'"
#[2] "'credit_id': '52fe420dc3a36847f800018b'"
#[3] "'credit_id': '52fe420dc3a36847f8000183'"样本数据
ss <- c("'character': 'Ted the Bellhop', 'credit_id': '52fe420dc3a36847f80001b7', 2",
"'character': 'Man', 'credit_id': '52fe420dc3a36847f800018b', 2",
"'character': 'Angela', 'credit_id': '52fe420dc3a36847f8000183', 1")https://stackoverflow.com/questions/55623265
复制相似问题