2016-07-28 98 views
0

我期待到R和它的一部分功能的源代碼是這樣的:

dat <- data.frame(obsnames = row.names(PC$x), PC$x) 

據我所知,你可以指定一個列row.names,所以第二個PC $ X沒有按對我來說沒有意義。任何想法?

我得到使用這個源代碼:

library(cummeRbund) 
showMethods(PCAplot) 
getMethod("PCAplot","CuffData") 

上述命令返回THIS文本。

任何幫助它的讚賞。

+1

嘗試'data.frame(obsnames = row.names(mtcars),mtcars $ MPG)',看看它與樣本數據做什麼。它本質上是「聯結」。 – r2evans

回答

1

該聲明的整體思路是將rownames轉換爲dataframe的一列,並將其附加到實際數據中。

要點注意:rownames(any_object)不是數據框中的列。

1.創建數據幀df與一個列「Data`

df <- data.frame(Data = c("Stack","OverFLow","Stack","EXchange")) 
    df 
    #  Data 
    # 1 Stack 
    # 2 OverFLow 
    # 3 Stack 
    # 4 EXchange 

II。轉換的dfrownames成列,並將其綁定到的dfData列,並將其存儲到新的數據幀df1

rownames轉換成數據幀的列的一個,它只是創建一個新的數據幀df1其中您的first columnrow namessecond column是舊數據的實際第一列。

df1 <- data.frame(obsnames = rownames(df),df$Data) 
    df1 
    # obsnames df.Data 
    # 1   1 Stack 
    # 2   2 OverFLow 
    # 3   3 Stack 
    # 4   4 EXchange 

三,改變數據框的rownames

如果你想改變的任何數據幀的rownames,這裏會是這樣的

rownames(df1) <- c("first","second","third","fourth") 
    df1 
    #   obsnames df.Data 
    # first   1 Stack 
    # second   2 OverFLow 
    # third   3 Stack 
    # fourth   4 EXchange 

IV。要綁定rownames到整個dataframe

df <- data.frame(AA = 31:33, BB = 21:23, CC = 11:13, DD = 1:3) 
df 
# AA BB CC DD 
# 1 31 21 11 1 
# 2 32 22 12 2 
# 3 33 23 13 3 

df1 <- data.frame(obsnames = rownames(df),df) 
df1 
# obsnames AA BB CC DD 
# 1   1 31 21 11 1 
# 2   2 32 22 12 2 
# 3   3 33 23 13 3 
+1

非常感謝你,這真的幫我弄清楚我正在嘗試做什麼 – Cris

+0

太棒了!謝謝。 –