【发布时间】:2018-08-09 22:32:45
【问题描述】:
我正在研究一个R中的简单问题(但我还没有弄清楚;p):
给定一个向量vect1 <- c("Andy+Pete", "Mary + Pete", "Pete+ Amada", ..., "Amada + Steven", "Steven + Henry")。我想创建一个新向量vect2,其中包含vect1 中的所有元素和 共享以下属性的新元素:对于每两个字符串"A+B" 和"B+C",我们将其连接起来进入"A+C" 并将这个新元素添加到vect2。谁能帮我做这件事?
另外,我想得到all每个字符串中+前面的元素,下面的代码正确吗?
for (i in length(vect1)){
vect3[i] <- regexpr(".*+", vect1[i])
}
第三个问题:如果我有一个数据框 d 和 Date 列,格式为 %d-%b(例如,01-Apr),我如何根据 Date 以递增顺序对该数据框进行排序??我们就说d <- c(01-Apr,01-Mar,02-Jan,31-June,30-May)。
【问题讨论】:
-
vect1的元素是always两个人,还是1个或3+个?这听起来像是组合“有趣”。 -
很确定您需要将
vect1拆分为单独的列。 -
你能举个例子吗?
-
@r2evans:幸运的是,总是两个人。我的
for循环代码如何? @ManishSaraswat Saraswat:是的,一个例子是"Mary + Pete"&"Pete + Amada"(第 2 和第 3 列)="Mary + Amada"。所以新向量的大小将是vect1+ 所有新的连接元素,就像这样。