从网页上抓取的表格被视为单个字符向量:如何转换为数据框?

mic*_*gia 1 r dataframe rvest

我使用rvest包从网页上删除了一个大表,但是它将它作为单个向量读取:

foo<-c("A","B","C","Dog","1","2","3","Cat","4","5","6","Goat","7","8","9")
Run Code Online (Sandbox Code Playgroud)

我需要处理的数据帧看起来像这样:

bar<-as.data.frame(cbind(Animal=c("Dog","Cat","Goat"),A=c(1,4,7),B=c(2,5,8),C=c(3,6,9)))
Run Code Online (Sandbox Code Playgroud)

这可能是一个简单的困境,但我很感激帮助.

Dav*_*ann 5

您可以从矢量创建矩阵并将其转换为数据框:

foo<-c("A","B","C","Dog","1","2","3","Cat","4","5","6","Goat","7","8","9")
foo <- c("Animal" , foo)
m <- matrix(foo , ncol = 4  , byrow = TRUE)
df <- as.data.frame(m[-1,] , stringsAsFactors = FALSE)  
colnames(df) <- m[1,]
# I assume you want numerics for your A,B,C columns:
df[,2:4]<-apply(df[,2:4],2,as.numeric)

lapply(df,class)
$Animal
[1] "character"

$A
[1] "numeric"

$B
[1] "numeric"

$C
[1] "numeric"
Run Code Online (Sandbox Code Playgroud)