2017-09-23 367 views
0

我有一个名称的文本文件,用逗号分隔,并且我想将它读入R(数据框或向量都很好)中的任何内容。我尝试了read.csv,它只是将它们作为单独列的标题读取,而不是0行数据。我尝试header = FALSE,并将它们作为单独的列读入。我可以用这个工作,但我真正想要的是一列只有一堆行,每个名称一列。例如,当我尝试打印此数据框时,它会打印出所有无效的列标题,然后不打印这些值。它似乎应该很容易使用,但在我看来,一列名称更容易处理。从CSV读取名称列表到R

+0

没有看到文件很难说。也许这些数据不是表格形式,而是用逗号分隔的一系列长字符串。如果是这种情况,请尝试'扫描(what ='character'等)'。 (先用文本编辑器检出文件。) –

+0

@RuiBarradas是的,就是这样。这是一串由逗号分隔的长串字符串。我试图将其作为一列阅读,尽管这似乎不是R的默认行为。 – Graphth

+0

如果是这种情况,我会尝试'dat < - scan(file = your_filename,what ='character', sep =',')'。 –

回答

2

由于OP问我,我会发布以上评论作为一个答案。
这非常简单,它来自于使用scan来读取数据,数字或字符序列中的一些练习。

dat <- scan(file = your_filename, what = 'character', sep = ',') 
1

您可以使用read.csv读字符串作为标题,但后来只提取用户名(使用names),并把它变成data.frame

data.frame(x = names(read.csv("FILE"))) 

例如:

write.table("qwerty,asdfg,zxcvb,poiuy,lkjhg,mnbvc", 
      "FILE", col.names = FALSE, row.names = FALSE, quote = FALSE) 
data.frame(x = names(read.csv("FILE"))) 

     x 
1 qwerty 
2 asdfg 
3 zxcvb 
4 poiuy 
5 lkjhg 
6 mnbvc 
1

类似的东西?

做一些测试数据:

# test data 
list_of_names <- c("qwerty","asdfg","zxcvb","poiuy","lkjhg","mnbvc") 
list_of_names <- paste(list_of_names, collapse = ",") 

list_of_names 

# write to temp file 
tf <- tempfile() 
writeLines(list_of_names, tf) 

你需要这个部分:

# read from file 
line_read <- readLines(tf) 
line_read 

list_of_names_new <- unlist(strsplit(line_read, ","))