我从网站上删除了一个数据列表,并使用以下代码将其转换为R中的列表。现在我已将其转换为带有元素的列表,我无法将其转换为矩阵/数据框,因为我需要。
htmlpage5<-read_html("http://www.catholichealthinitiatives.org/landing.cfm? xyzpdqabc=0&id=39524&action=list&sortby=state&pageNo=4")
chihtml5<-html_nodes(htmlpage5,".info")
chi5<-html_text(chihtml5)
chi27<-strsplit(trimws(chi5), '[\n\r\t]+|(?<![A-Z])\\B(?=[A-Z])|(?<=[a- z]\\.)\\b(?=[A-Z])', perl = TRUE)
chi27
myfunction<-function(x) {
if (length(x)==4) {x <- c(x,"")}
else if (length(x)==3) {x <- c(x,"","")}
return(x)}
chiapply2 <- sapply(chi27, my function)
chiapply2
当我运行此代码时,chiapply 2会生成以下数据。
[[24]]
[1] "CHI Health Schuyler" "104 W. 17 St." "Schuyler, NE 68661" "P 402.352.2441" ""
[[25]]
[1] "CHI Health St. Elizabeth" "555 South 70th Street" "Lincoln, NE 68510" "P 402.219.800"
[5] "F 402.219.8973"
等等......
如何将此数据转换为矩阵/数据框,以便可以将其转换为cvs / tsv以报告为excel。任何帮助将不胜感激!
这是我尝试使用的代码:
chit2 <- t(chiapply2)
class(chit2)
chit2
但是我要回来了:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] Character,5 Character,6 Character,5 Character,5 Character,5 Character,5 Character,5 Character,5 Character,5 Character,5
非常感谢你的帮助!
答案 0 :(得分:0)
如果我有一个列表x
,就像你这样的实例:
> x = list()
> x[[1]] = c("a", 1, 2)
> x[[2]] = c("b", 1, 2)
> x
[[1]]
[1] "a" "1" "2"
[[2]]
[1] "b" "1" "2"
我可以将其转换为数据帧,如下所示:
> y <- data.frame(t(as.data.frame(x)), row.names = 1:length(x) )
> y
X1 X2 X3
1 a 1 2
2 b 1 2
如果chiapply2
是你的清单:
chiapply3 <- data.frame(t(as.data.frame(chiapply2)), row.names = 1:length(chiapply2) )
这可能不是最有效的解决方案,因为它需要两次演员data.frame
,但它的功能......