我有这个数据集:
test <- tribble(
~x, ~y,
"bmi_diff", 0.2,
"bmi_lb", 0.1,
"bmi_ub", 0.3,
"ht_bin_diff", 5,
"ht_bin_lb", 1,
"ht_bin_ub", 7)
我想使用tidyr包中的单独函数,但是我只想分隔最后一个_
之后的单词,在某些情况下,后者是唯一的_
,如{ {1}}或bmi_diff
,在其他情况下则是bmi_lb
中的第二个。
因此新数据框可能类似于:
ht_bin_diff
我对正则表达式不熟悉,我尝试过:
test2 <- tribble(
~a, ~b, ~y,
"bmi", "diff", 0.2,
"bmi", "lb", 0.1,
"bmi", "ub", 0.3,
"ht_bin", "diff", 5,
"ht_bin", "lb", 1,
"ht_bin", "ub", 7)
由于它将始终以d,l,u开头,但是我需要将该字母保留在新变量中。
或者:
test %>%
separate(x, c("a", "b"), sep = "_[dlu]")
但这会使变量包含一些变量的“ NA_”,因此我将不得不采取另一步骤删除它。
我希望我能对清洁版本有所了解。我发现了类似的示例,但总是在所有观察结果中它们包含相同数量的空格或simbol的情况下。
谢谢!