我正在尝试取消列表以获取排序(这是点)数组,但我无法找到任何提示。
所以,让我们说这是我的清单:
V1<-c("Node 1","Node 3","Node 3","Node 3","Node 4","Node 4","Node 4","Node 4","Node 5","Node 7","Node 8","Node 8");
V2<-c("Node 2","Node 5","Node 6","Node 2","Node 1","Node 5","Node 7","Node 2","Node 2","Node 8","Node 6","Node 3");
try<-data.frame(V1,V2);
colnames(try)<-c("V1","V2");
现在,如果我试图取消它,我就会得到:
array(unlist(try))
[1] "Node 1" "Node 3" "Node 3" "Node 3" "Node 4" "Node 4" "Node 4" "Node 4"
[9] "Node 5" "Node 7" "Node 8" "Node 8" "Node 2" "Node 5" "Node 6" "Node 2"
[17] "Node 1" "Node 5" "Node 7" "Node 2" "Node 2" "Node 8" "Node 6" "Node 3"
但这不是我想要的。我需要一个保留两列耦合的数组。让我们说我需要将V1的第一个值与V2的第一个值,然后是V1的第二个值和V2的第二个值......并最终将它们放在一个数组中:
"Node 1","Node 2","Node 3","Node 5","Node 3","Node 6","Node 3","Node 2","Node 4","Node 1","Node 4","Node 5","Node 4","Node 7","Node 4","Node 2","Node 5","Node 2","Node 7","Node 8","Node 8","Node 6","Node 8","Node 3"
有没有使用for循环的解决方案?或者这是唯一的方法吗?
答案 0 :(得分:5)
更短:
c(t(try))
[1] "Node 1" "Node 2" "Node 3" "Node 5" "Node 3" "Node 6" "Node 3" "Node 2" "Node 4" "Node 1" "Node 4" "Node 5"
[13] "Node 4" "Node 7" "Node 4" "Node 2" "Node 5" "Node 2" "Node 7" "Node 8" "Node 8" "Node 6" "Node 8" "Node 3"
答案 1 :(得分:2)
快速解决方案(apply
取代for loop
,所以有点可疑......):
unlist(apply(try, 1, list), use.names = FALSE)