【发布时间】:2020-02-05 03:10:10
【问题描述】:
我有一个数据框,我希望通过第一个“.”将一列 (var) 分成两列。 var 中的值当前有 2 个句点。我想将新名称命名为“First”和“Second。我已经添加了我的数据框以及它的屏幕截图。最后我展示了我的尝试。
df = structure(list(Date.Dates = c("42370", "42373", "42374", "42375",
"42376", "42377"), var = c("SHOP US Equity.30DAY_IMPVOL_100.0%MNY_DF",
"SHOP US Equity.30DAY_IMPVOL_100.0%MNY_DF", "SHOP US Equity.30DAY_IMPVOL_100.0%MNY_DF",
"SHOP US Equity.30DAY_IMPVOL_100.0%MNY_DF", "SHOP US Equity.30DAY_IMPVOL_100.0%MNY_DF",
"SHOP US Equity.30DAY_IMPVOL_100.0%MNY_DF"), val = c("59.835999999999999",
"67.208600000000004", "61.522599999999997", "63.298900000000003",
"66.243200000000002", "69.282899999999998")), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
library(tidyverse)
df %>%
gather(var, val, -Date.Dates) %>%
separate(var, c("First", "Second", sep = "/^([^.]+)/"))
我们应该有一个名为“First”的新列,其中包含值“SHOP US Equity”。第二列名为“Second”,包含值“30DAY_IMPVOL...”
谢谢
【问题讨论】:
-
你真的需要
gather步骤。它正在创建一个包含“字符/数字”混合的列