在r中将文本文件转换为数据帧

在r中将文本文件转换为数据帧,r,R,如何转换以下格式给出的文本文件 ASDDSDAS 111 132 456 DSSADSDA 1 12335 在数据帧中使用 circleid nodeid ASDDSDAS 111 ASDDSDAS 132 ASDDSDAS 456 DSSADSDA 1 DSSADSDA 12335 到目前为止 library(tidyverse) circ <- read_file(circ_file) cir <- read.csv(text=circ, sep=" ", heade

如何转换以下格式给出的文本文件

ASDDSDAS 111 132  456 
DSSADSDA 1 12335 
在数据帧中使用

circleid nodeid
ASDDSDAS 111
ASDDSDAS 132
ASDDSDAS 456
DSSADSDA 1
DSSADSDA 12335
到目前为止

 library(tidyverse)
circ <- read_file(circ_file)
cir <- read.csv(text=circ, sep=" ", header = FALSE) %>% 
  separate_rows(circ, convert = TRUE) %>%
  filter(!is.na(circ))

#Error: Unknown column ASDDSDAS. 
库(tidyverse)
保监会%
过滤器(!is.na(circ))
#错误:未知列ASDDSDAS。

以下是一种仅使用base R的方法

fun <- function(x){
    data.frame(circleid = x[1], nodeid = as.numeric(x[-1]), stringsAsFactors = FALSE)
}

uri <- "https://raw.githubusercontent.com/pranavn91/APS/master/100129275726588145876.circles"
txt <- readLines(uri)
result <- do.call(rbind, lapply(strsplit(txt, "[[:blank:]]+"), fun))

print(head(result), digits = 20)
#     circleid                nodeid
#1 Az1VWXrXzeg 111439704478822924298
#2 Az1VWXrXzeg 102604554618567114752
#3 Az1VWXrXzeg 113609548050074206218
#4 Az1VWXrXzeg 103090889232468295680
#5 Az1VWXrXzeg 108271734388645117952
#6 Az1VWXrXzeg 111566503164646162432

fun这里有一种只使用base R的方法

fun <- function(x){
    data.frame(circleid = x[1], nodeid = as.numeric(x[-1]), stringsAsFactors = FALSE)
}

uri <- "https://raw.githubusercontent.com/pranavn91/APS/master/100129275726588145876.circles"
txt <- readLines(uri)
result <- do.call(rbind, lapply(strsplit(txt, "[[:blank:]]+"), fun))

print(head(result), digits = 20)
#     circleid                nodeid
#1 Az1VWXrXzeg 111439704478822924298
#2 Az1VWXrXzeg 102604554618567114752
#3 Az1VWXrXzeg 113609548050074206218
#4 Az1VWXrXzeg 103090889232468295680
#5 Az1VWXrXzeg 108271734388645117952
#6 Az1VWXrXzeg 111566503164646162432

fun这里有一种使用
tidyverse

library(tidyverse)
cir <- 
  read_table2("https://raw.githubusercontent.com/pranavn91/APS/master/100129275726588145876.circles", col_names = FALSE) %>% 
  rename(circleid = X1) %>% 
  gather(key = "key", value = "nodeid", -circleid) %>% 
  arrange(circleid, nodeid) %>% 
  select(-key) 

下面是使用
tidyverse

library(tidyverse)
cir <- 
  read_table2("https://raw.githubusercontent.com/pranavn91/APS/master/100129275726588145876.circles", col_names = FALSE) %>% 
  rename(circleid = X1) %>% 
  gather(key = "key", value = "nodeid", -circleid) %>% 
  arrange(circleid, nodeid) %>% 
  select(-key) 

请提供带有
dput
的数据,或者至少是我们可以轻松复制和粘贴的数据。为什么要将文件中的数据读入字符,而不是直接在文件上调用
read.csv
?您有什么问题?请提供带有
dput
的数据,或者至少是我们可以轻松复制和粘贴的数据。为什么要将文件中的数据读入字符,而不是直接在文件上调用
read.csv
?您遇到了什么问题?data.frame(circleid=x[1],nodeid=as.numeric(x[-1]),stringsAsFactors=FALSE)中存在错误:参数表示行数不同:1,0--此时的实际文件location@pranavnerurkar完成。在我的系统上,当我将结果打印为csv 1.114397e+20时,我得到Az1VWXrXzeg 1.114397e+20111439704478822000000@pranavnerurkar这只是
打印
命令的默认输出数字。真实数字是csv中的数字或上面我的答案中的数字。请参阅我的
print
命令,参数
digits=20
。data.frame中出现错误(circleid=x[1],nodeid=as.numeric(x[-1]),stringsAsFactors=FALSE):参数表示不同的行数:1,0--此时的实际文件location@pranavnerurkar完成。在我的系统上,当我将结果打印为csv 1.114397e+20时,我得到Az1VWXrXzeg 1.114397e+20111439704478822000000@pranavnerurkar这只是
打印
命令的默认输出数字。真实数字是csv中的数字或上面我的答案中的数字。请参阅我的
print
命令,参数
digits=20