2012-12-17 54 views
1

对不起,如果标题混乱。我可以将CSV文件导入到R中,但是一旦我想通过提供行和列索引来选择一个元素。我得到了不止一个元素。我只需要使用这个导入的csv作为data.frame,我可以选择任何列,行和单个单元格。任何人都可以给我一些建议吗?阅读R中的CSV文件,并选择每个元素

下面是数据:

SKU On Off Duration(hr) Sales 
C010100100 2/13/2012 4/19/2012 17:00 1601 238 
C010930200 5/3/2012 7/29/2012 0:00 2088 3 
C011361100 2/13/2012 5/25/2012 22:29 2460 110 
C012000204 8/13/2012 11/12/2012 11:00 2195 245 
C012000205 8/13/2012 11/12/2012 0:00 2184 331 

CODE:

Dat = read.table("Dat.csv",header=1,sep=',') 
Dat[1,][1] #This is close to what I need but is not exactly the same 
     SKU 
1 C010100100 
Dat[1,1] # Ideally, I want to have results only with C010100100 
[1] C010100100 
3861 Levels: B013591100 B024481100 B028710300 B038110800 B038140800 B038170900 B038260200 B038300700 B040580700 B040590200 B040600400 B040970200 ... YB11624Q1100 

谢谢!

+0

您的数据似乎是制表符分隔“\ t”的,而不是逗号分隔 –

+0

你确实得到了一个因素! –

+0

@timriffe:我重新保存了CSV格式的数据,所以我认为它们是用逗号分隔的... –

回答

2

可以转换为字符来获取值作为一个字符串,而不再是一个因素:

as.character(Dat[1,1]) 

你只有一个元素,但该因素包含了所有的水平。

另外,通过选项stringsAsFactors=FALSE当你阅读的文件,以防止因素创造字符值的函数read.table到:

Dat = read.table("Dat.csv",header=1,sep=',', stringsAsFactors=FALSE) 
+0

谢谢。这是唯一的方法吗?看起来我需要将所有数据转换为字符,然后进行选择? –

+0

查看最新的编辑。 –

+0

感谢您的帮助! –