我有一個數據幀說「一」如何通過組合R中的數據幀的行來創建向量?
qq ee rr tt
1 2 3 4
2 44 66 77
9 0 0 4
我想創建一個像向量:
vec <- c(1,2,3,4,2,44,66,77,9,0,0,4)
我該怎麼做呢?
我有一個數據幀說「一」如何通過組合R中的數據幀的行來創建向量?
qq ee rr tt
1 2 3 4
2 44 66 77
9 0 0 4
我想創建一個像向量:
vec <- c(1,2,3,4,2,44,66,77,9,0,0,4)
我該怎麼做呢?
採取t
ranspose也將其轉換爲一個matrix
,然後轉換爲vector
:
as.vector(t(a))
[1] 1 2 3 4 2 44 66 77 9 0 0 4
或只是'c(t(a))' – johannes
@jmsigner,這是使用'c'的副作用,而不是'as.vector',我發現它更透明。 – A5C1D2H2I1M1N2O1R2T1
裏普利教授有個引用,你不應該用'c'來表示副作用。這不是「財富」嗎? – Roland
爲了好玩,這裏是另一種選擇:
> scan(textConnection(do.call(paste, a)))
Read 12 items
[1] 1 2 3 4 2 44 66 77 9 0 0 4
其中, 「一」 是:
a <- read.table(textConnection("qq ee rr tt
1 2 3 4
2 44 66 77
9 0 0 4"), header=T)
使用詹姆斯的答案。
這裏是另一種選擇:unlist
和排序。
unlist(a)[order(rep(seq_len(nrow(a)),ncol(a)))]
#qq1 ee1 rr1 tt1 qq2 ee2 rr2 tt2 qq3 ee3 rr3 tt3
# 1 2 3 4 2 44 66 77 9 0 0 4
這樣你可以保留名稱中的信息,這可能是有用的。如果您不想要名稱,請使用unlist
和use.names=FALSE
。
+1啊,這回答我的問題 –
你只需35分鐘就能擊敗我! – Arun
你是否以你自己的名義進行Google搜索/搜索? –
即使是最差的R程序員也應該知道這可以通過i = cols和j = rows上的雙循環完成。這可能不是最好的方式,但它至少會告訴我們你有一定的能力。 – Spacedman