![](/img/trans.png)
[英]how to split a vector with mixed variables into two separate vectors in R
[英]How to split a vector into two vectors in R
經過一個函數,我把矩陣作為一個向量返回
例;
[1] "M. " "Mueller "
[3] "C. " "Mueller "
[5] "L. " "Mueller "
[7] "U. " "Mueller "
[9] "D. " "Mueller ",
現在,我想將其拆分為2個向量,一個包含所有“ Mueller”的向量,另一個包含M.,C的向量。 等等
提前致謝! 編輯:我得到拆分有點奇怪的結果
test1<-split(test, c(1,2))
vorname<-test1[[1]]
structure(c("M. ", "C. ",
"L. ", "U. ",
..), .Names = c("1.vorname", "2.vorname", "3.vorname", "4.vorname",
"5.vorname", "6.vorname", "7.vorname", "8.vorname", "9.vorname",
vorname是列1的名稱
編輯2:
structure(list(vorname = structure(c(48L, 48L, 38L, 65L, 73L,
67L, 17L, 75L, 39L, 61L), .Label = c("Adrian ",
"Andrea ", "Andreas ",
"Angela ", "Anna Lena ",
"AnnaElisabeth ", "AnnaSarah ",
"Beate ", "Bernd ",
"Birgit ", "BrunoHeribert ",
"Carina ", "Carolin ",
"Chris Joachim ", "Christa ",
"Christian ", "Christopher ",
"Cornelia ", "Daniel Markus ",
"DavidBenjamin ", "Dennis ",
"Elena ", "Elisabeth ",
"Erhard ", "Frieder ",
"Friederike ", "HansJörg ",
"Harald ", "Heike ",
"Heinz ", "Ilka ",
"Jan ", "Janina ",
"Janine ", "Jessica Louise ",
"JörgHenning ", "Jürgen ",
"Karin ", "Karl Heinz ",
"Katharina ", "Kathrin ",
"Katja ", "KlausDieter ",
"Ljubow ", "Luise ",
"Lutz ", "Mandy ",
"Marco ", "Marius ",
"Mattea ", "Matthias ",
"Maurice ", "Maximilian ",
"Melanie ", "Melissa ",
"Michael ", "Miriam ",
"Norbert ", "Oliver ",
"Peer ", "Peggy ",
"RalfMichael ", "Rebekka ",
"Regina ", "Rolf ",
"Rosalinde ", "Sandra ",
"Silvia ", "Stefan ",
"Stefanie ", "Stephan ",
"Susan ", "Svitlana ",
"SwaantjeCathrin ", "Thomas ",
"Tino ", "UdoHeinz ",
"Ulrike ", "Uwe ",
"Viktoria "), class = "factor"),
nachname = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L), .Label = "Müller ", class = "factor")), .Names = c("vorname",
"nachname"), row.names = c(NA, 10L), class = "data.frame")
您的問題包括可以使用的便捷功能: split
> split(myvec, c(1,2))
$`1`
[1] "M. " "C. "
[3] "L. " "U. "
[5] "D. "
$`2`
[1] "Mueller " "Mueller "
[3] "Mueller " "Mueller "
[5] "Mueller "
上面將創建兩個向量的列表。 另外,您可以使用“回收”和邏輯向量將其分配給新向量:
> (vec1 <- myvec[c(TRUE, FALSE)])
[1] "M. " "C. "
[3] "L. " "U. "
[5] "D. "
> (vec2 <- myvec[c(FALSE, TRUE)])
[1] "Mueller " "Mueller "
[3] "Mueller " "Mueller "
[5] "Mueller "
注意: 此答案假定您的數據是成對的。
您可以將其轉換為矩陣:
v <- as.character(1:10)
m <- matrix(v, ncol=2, byrow=TRUE)
v1 <- m[,1]
v2 <- m[,2]
> v
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
> m
[,1] [,2]
[1,] "1" "2"
[2,] "3" "4"
[3,] "5" "6"
[4,] "7" "8"
[5,] "9" "10"
> v1
[1] "1" "3" "5" "7" "9"
> v2
[1] "2" "4" "6" "8" "10"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.