我是R的新手,我正在尝试使用SocialMediaMineR包来解决我存储在csv数据集中的缩短网址。这是通过命令get_url完成的,该命令需要一个字符向量作为要解析的URL。
我们说我想解决三个URL。如果我手动创建一个包含这三个字符的向量并启动命令,它就可以工作:
library(SocialMediaMineR)
url<- c("http://buff.ly/1bH9XaL", "http://buff.ly/1I4REcx", "http://buff.ly/1kMqoFs")
get_url(url, return.df = T)
... originalURL
1 http://buff.ly/1bH9XaL
2 http://buff.ly/1I4REcx
3 http://buff.ly/1kMqoFs
resolvedURL
1 https://www.storiedmind.com/relationship/11-relationship-traps-of-depression/?utm_source=buffer&utm_campaign=Buffer&utm_content=buffer8151c&utm_medium=twitter
2 http://inkygirl.com/inkygirl-main/2015/8/15/am-going-to-try-hard-not-to-be-like-these-writers-while-im-o.html?utm_content=bufferc6643&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
3 http://the7gracesofmarketing.com/2014/07/10-business-systems-to-help-your-one-person-enterprise-grow/?utm_content=buffer83b26&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
但是,我希望直接从我的csv文件中获取URL列表。我尝试使用csv文件的以下代码,该文件包含与以前完全相同的三个URL:
library(SocialMediaMineR)
url_list = read.csv("~/Desktop/url2.csv", header = F)
as.character(url_list)
get_url(url_list)
但是,我一直收到以下错误:
Error : length(url) == 1 is not TRUE
为清楚起见,这里是从csv文件中读取的数据结构:
> url_list<-read.csv("~/Desktop/url2.csv", header = F)
> dput(url_list)
structure(list(V1 = structure(1:3, .Label = c("http://buff.ly/1bH9XaL",
"http://buff.ly/1I4REcx", "http://buff.ly/1kMqoFs"), class = "factor")), .Names = "V1", class = "data.frame", row.names = c(NA,
-3L))
为什么会发生这种情况,我该如何解决?任何帮助都将非常感激!
答案 0 :(得分:0)
首先,您没有使用参数stringsAsFactors = FALSE
读取数据,因此您有一列类factor
的对象。你必须这样做
url_list$V1 <- as.character(url_list$V1)
在此之后,以下似乎有效。
get_url(url_list$V1)
注意:正如我上面所述,正确读取数据的方法是
url_list = read.csv("~/Desktop/url2.csv", header = F, stringsAsFactors = FALSE)