2011-04-11 56 views
2

在以前的消息 Convert table into matrix by column namesR:與textconnection負載R表或CSV文件,命令

我想用一個CSV表或R.相同的方法的表,你可能想教我如何修改第一個命令行?

x <- read.table(textConnection(' models cores time 4 1 0.000365 4 2 0.000259 4 3 0.000239 4 4 0.000220 8 1 0.000259 8 2 0.000249 8 3 0.000251 8 4 0.000258'), header=TRUE) 

library(reshape) cast(x, models ~ cores) 

我應該用以下的data.csv文件

x <- read.csv(textConnection("data.csv"), header=TRUE) 

我應該使用命名爲XYZ

x <- xyz(textConnection(xyz), header=TRUE) 

一個R表下面是它必須有textConnection使用強制轉換命令?

謝謝。

+3

你不會碰巧和另一個凱瑟琳的同事一樣,他不接受問題,也不接受簡單的問答,也沒有仔細閱讀我們一直問她的手冊。 – 2011-04-11 16:26:17

+6

歡迎回來,凱瑟琳。哦,我們怎麼想你。 – Andrie 2011-04-11 16:28:53

+1

你確定'xyz'是一個表嗎?它更可能是一個數據框架。 'class(xyz)'說什麼?你爲什麼會認爲'xyz'可以用作函數?如果'xyz'已經* in * R,你爲什麼試圖讀入?也許你早些時候保存過的東西?如果是後者,請參閱'?load'。 – 2011-04-11 17:09:12

回答

15

若干年後......

read.table及其衍生物如read.csv現在有一個text參數,所以你不需要更動textConnection小號直接了。

read.table(text = " 
x y z 
1 1.9 'a' 
2 0.6 'b' 
", header = TRUE) 

textConnection的主要用途是,當人們問誰在SO徑直往數據在屏幕上的問題,而不是編寫代碼來讓回答者生成它自己。例如,

等等等等等等,我堅持在這裏是我的數據plz幫助OMG
XYZ
1 1.9 '一'
2 0.6 'B'

在這種情況下,您可以複製屏幕上的文本並將其打包到textConnection,如下所示:

the_data <- read.table(tc <- textConnection("x y z 
1 1.9 'a' 
2 0.6 'b'"), header = TRUE); close(tc) 

這是好得多提問時提供代碼,像這樣:

the_data <- data.frame(x = 1:2, b = c(2.9, 0.6), c = letters[1:2]) 

當您使用您自己的數據,你不應該在任何時候需要使用textConnection
my_data <- read.csv("my data file.csv")應該就足夠了。

+3

我認爲你錯過了閱讀'?read.csv'的註釋和一個鏈接到R數據導入/導出手冊[http://cran.r-project.org/doc/manuals/R-data.html]在那裏的某個地方:-) – 2011-04-11 17:06:05