我有以下数据框:
代码:
DF <- data.frame(lapply(data.frame(Col1 = c("test", "", "test3"),
Col2 = c("", "test2", ""),
Col3 = c("", "", "test4")), as.character), stringsAsFactors=FALSE)
输出的内容:
Col1 Col2 Col3
1 test
2 test2
3 test3 test4
我想要做的是创建一个将3列合并在一起的新列。我有以下代码:
DF$Merged <- do.call(paste0, DF[c("Col1", "Col2", "Col3")])
这输出以下内容:
Col1 Col2 Col3 Merged
1 test test
2 test2 test2
3 test3 test4 test3test4
这有点好用,因为我得到了一个名为“Merged”的专栏。但是,第3行出现问题,其中元素值为test3,test4合并在一起。我希望这两个元素在同一列(Merged)下,但不在同一个元素中。一个理想的解决方案是,如果R创建了一个额外的行并在那里放置它们,所以它最终会像这样:
Col1 Col2 Col3 Merged
1 test test1
2 test2 test2
3 test3 test4 test3
4 test4
答案 0 :(得分:1)
一个选项是将DatePickerDialog datePickerDialog =DatePickerDialog.newInstance(new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
}
}, persianCalendar.getPersianYear(),
persianCalendar.getPersianMonth(),
persianCalendar.getPersianDay());
个元素组合在一起,然后与paste
一起,将行拆分为“长”字样。通过在一个字母(separate_rows
)之前在一个或多个空格(\\s+
)处拆分来格式化,以基本上排除在数字之前的任何空格处的拆分,即测试3&#39;或者&#39;测试2&#39;
(?=[A-Za-z])
如果模式不清楚,那么我们创建library(tidyverse)
DF %>%
mutate(Merged = trimws(do.call(paste, .))) %>%
separate_rows(Merged, sep="\\s+(?=[A-Za-z])")
而sep
paste