这是我之前关于从R中字符串中提取关键字的问题的延续:Extract a specific key word from a string in R
我编写了以下代码,按照我的意愿返回关键字:
loc <- t1$place
loc <- gsub('"', '', loc)
loc <- gsub(',', '', loc)
for(i in 1:nrow(t1))
country <- word(loc[i], 19, sep=fixed(" : "))
country <- gsub(' }', '', country)
for循环似乎无法正常工作。当我使用相同的代码insde for循环与硬编码数字,如下所示:
country <- word(loc[2], 19, sep=fixed(" : "))
country <- gsub(' }', '', country)
代码似乎有效。但是当我把它放到循环中时,它会给我一个错误
Error in word[loc, "start"] : subscript out of bounds
请在出错的地方帮助我。
class(country)
说这是一个字符类型。我编写for循环错误的方式是什么?
其他细节:t1是我桌子的数据框。我使用Import数据集加载我的文件week_tweet_filtered.csv并使用命令:
t1 <- week_tweet_filtered
在t1变量中加载相同的内容。我使用t1 $ place访问表格的place列。此外,场所列包含格式的字段:
{ "id" : "94965b2c45386f87", "name" : "New York", "boundingBoxCoordinates" : [ [ { "longitude" : -79.76259, "latitude" : 40.477383 }, { "longitude" : -79.76259, "latitude" : 45.015851 }, { "longitude" : -71.777492, "latitude" : 45.015851 }, { "longitude" : -71.777492, "latitude" : 40.477383 } ] ], "countryCode" : "US", "fullName" : "New York, USA", "boundingBoxType" : "Polygon", "URL" : "https://api.twitter.com/1.1/geo/id/94965b2c45386f87.json", "accessLevel" : 0, "placeType" : "admin", "country" : "United States" }
答案 0 :(得分:0)
这对我有用
x<-'{ "id" : "94965b2c45386f87", "name" : "New York", "boundingBoxCoordinates" : [ [ { "longitude" : -79.76259, "latitude" : 40.477383 }, { "longitude" : -79.76259, "latitude" : 45.015851 }, { "longitude" : -71.777492, "latitude" : 45.015851 }, { "longitude" : -71.777492, "latitude" : 40.477383 } ] ], "countryCode" : "US", "fullName" : "New York, USA", "boundingBoxType" : "Polygon", "URL" : "https://api.twitter.com/1.1/geo/id/94965b2c45386f87.json", "accessLevel" : 0, "placeType" : "admin", "country" : "United States" }'
y<-fromJSON(x)
y[['country']]
请注意,第一行用单引号括起json ...我不知道这是否是您遇到的问题。
如果您没有引号,请尝试
x<-as.string(t1$place)
我真的不明白你是如何得到的那样不是一个字符串。