假設創建一個數據幀的頭我有一個數據幀:從第一行中的數據幀
a <- data.frame(a=c("f", 2, 3), b=c("g", 3, 7), c=c("h", 2, 4))
,我想從第一行創建列名。我的猜測是:
names(a) <- a[1,]
這給:
names(a)
[1] "3" "3" "3"
我沒有完全得到發生了什麼。任何人都可以解釋並幫助我如何以正確的方式做到這一點?
假設創建一個數據幀的頭我有一個數據幀:從第一行中的數據幀
a <- data.frame(a=c("f", 2, 3), b=c("g", 3, 7), c=c("h", 2, 4))
,我想從第一行創建列名。我的猜測是:
names(a) <- a[1,]
這給:
names(a)
[1] "3" "3" "3"
我沒有完全得到發生了什麼。任何人都可以解釋並幫助我如何以正確的方式做到這一點?
的是與具有不同電平的每一列因素的列。 R將他們投入整數。因爲,每一列的字母出現持續的字母數字就被分配值3
嘗試
names(a) = as.character(unlist(a[1,]))
names(a)
這個答案中的「as.character」是做什麼的? – A5C1D2H2I1M1N2O1R2T1
什麼都沒有!完全沒有它! – user3472874
看起來'name()'將因子轉換爲字符本身 – SeDur
嘗試這種情況:
> colnames(a) <- unlist(a[1,])
> a
f g h
1 f g h
2 2 3 2
3 3 7 4
我不認爲「水滴」是必需的,是嗎? – A5C1D2H2I1M1N2O1R2T1
你說得對@AnandaMahto,現在是早上8點20分,現在想想R還爲時過早,需要一杯咖啡,謝謝你指出了這一點。 –
或8PM對於像我這樣的人來說,或許來不及想想R :-) – A5C1D2H2I1M1N2O1R2T1
不知道爲什麼..但你可以換一個'[1]''在不公開() ' – rawr
爲什麼你有這個data.frame?看起來像是數據導入/創建過程中應該解決的問題。 – Roland
@Roland我輸入一個包含因子和數值數據的csv。因此我不能使用矩陣......如果這是你的意思。 – joaoal