2011-07-05 133 views
2

您好,我正在分析一些數據並試圖使用包含必須以這種方式進行格式化的對象的包。我從來沒有見過這種類型的格式,我不知道如何生成它。當我打電話R中的對象,這是奇怪的物體:在R中更改屬性

> a 
    A  B   C   D   E   F 
0.00000000 1.34529412 0.31571429 1.26327103 0.32615385 1.12585586 

下面是此對象的一些屬性:

> str(a) 
Named num [1:6] 0 1.345 0.316 1.263 0.326 ... 
- attr(*, "names")= chr [1:6] "" "A" "B" "C" ... 

> class(a) 
[1] "numeric" 

我可以寫「一」與標準的一個.csv格式write.csv命令,它用兩列很好地格式化,一列包含字符,另一列包含數字。當我嘗試使用read.csv在R中讀取它時,它將以兩列數據框的形式正確返回。然而,我試圖用不喜歡的數據幀格式,喜歡的任何格式的功能「一」是

因此,有可能採取示例數據集中,如:

> L <- c("A","B","C","D","E","F") 
> R <- c(0.00000000,1.34529412,0.31571429,1.26327103,0.32615385,1.12585586) 
> T <- list(L=L,R=R) 
> Example <- as.data.frame(T) 
> Example 
    L  R 
1 A 0.00000000 
2 B 1.34529412 
3 C 0.31571429 
4 D 1.26327103 
5 E 0.32615385 
6 F 1.12585586 

並把它變成這個?

 A  B   C   D   E   F 
0.00000000 1.34529412 0.31571429 1.26327103 0.32615385 1.12585586 

有了這些屬性?

> str(a) 
    Named num [1:6] 0 1.345 0.316 1.263 0.326 ... 
    - attr(*, "names")= chr [1:6] "" "A" "B" "C" ... 

    > class(a) 
    [1] "numeric" 

謝謝你的幫助!

+0

這是一個相當常見的結構,即(因爲它是)一個命名的數字向量。 「名稱」屬性在R中無處不在。建議您閱讀?名稱 –

回答

4

我覺得這是諸如此類的事情,你要找的:除了用write.table寫入磁盤的

newExample <- Example$R 
names(newExample) <- Example$L 
+0

哇......我不知道這是如此簡單!非常感謝,並感謝Dwin告訴我下一步要檢查的地方。 – Joyce

3

()或write.csv(),你應該學會使用保存( )。然後你可以放心,當你加載()該對象回來,你會得到一個正確構造的副本。如果您需要以ASCII可讀的格式查看對象,則可以使用dump()。

0
R <- t(Example$R) 
L <- t(Example$L) 
names(R) <- L 
str(R) 

NUM [1,1:6] 0 1.345 0.316 1.263 0.326 ... - ATTR(*, 「名稱」)= CHR [1:6] 「A」 「B」 「C」「 D「...