读取数据。使用链运算符将字符串作为因子的帧=R中的False
我有一个读取数据帧的表源。我知道,默认情况下,外部源作为因子读入数据帧。我想在下面的数据帧调用中应用读取数据。使用链运算符将字符串作为因子的帧=R中的False,r,dataframe,chaining,rvest,R,Dataframe,Chaining,Rvest,我有一个读取数据帧的表源。我知道,默认情况下,外部源作为因子读入数据帧。我想在下面的数据帧调用中应用stringsAsFactors=FALSE,但这样做时会抛出一个错误。我仍然可以使用链接并将stringsAsFactors=FALSE library(rvest) pvbData <- read_html(pvbURL) pvbDF <- pvbData %>% html_nodes(xpath = `//*[@id="ajax_result_table"]`) %>
stringsAsFactors=FALSE
,但这样做时会抛出一个错误。我仍然可以使用链接并将stringsAsFactors=FALSE
library(rvest)
pvbData <- read_html(pvbURL)
pvbDF <- pvbData %>%
html_nodes(xpath = `//*[@id="ajax_result_table"]`) %>%
html_table() %>%
data.frame()
data.frame(,stringsAsFactors=FALSE) <- Throws an error
库(rvest)
PVB数据%
html_表()%>%
data.frame()
data.frame(,stringsAsFactors=FALSE)尽管该语句在逻辑上应该是data.frame(stringsAsFactors=FALSE)
如果应用链接,即使该语句也不会生成所需的输出
原因是对stringsafactors
选项的使用存在误解。仅当逐列创建data.frame时,此选项才有效。例如:
a <- data.frame(x = c('a','b'),y=c(1,2),stringsAsFactors = T)
str(a)
'data.frame': 2 obs. of 2 variables:
$ x: Factor w/ 2 levels "a","b": 1 2
$ y: num 1 2
a <- data.frame(x = c('a','b'),y=c(1,2),stringsAsFactors = F)
str(a)
'data.frame': 2 obs. of 2 variables:
$ x: chr "a" "b"
$ y: num 1 2
更新:
如果列已经是一个因子,则不能使用此命令将其转换为字符向量。最好先输入字符,然后重试
有关更多详细信息,请参阅
library(rvest)
pvbData <- read_html(pvbURL)
pvbDF <- pvbData %>%
html_nodes(xpath = `//*[@id="ajax_result_table"]`) %>%
html_table()
data.frame(as.list(pvbDF),stringsAsFactors=F)