为什么不是';这个文本到表格的函数在R中工作吗?

为什么不是';这个文本到表格的函数在R中工作吗?,r,R,我试图从R中的一个列创建四个列,我发现了关于如何创建的有用帖子。但是,它不是创建一个具有四列和相同条目的数据框,而是创建一个具有一个条目的数据框,每个单元格包含一个似乎与原始数据没有关联的随机数列表。我试过玩弄这些代码,但什么都没用 以下是相关代码: input <- data.frame(Treatment = c("Compost-0lb/ac 24in 60.96", "Compost-0lb/ac 6in 15.24", "Comp

我试图从R中的一个列创建四个列,我发现了关于如何创建的有用帖子。但是,它不是创建一个具有四列和相同条目的数据框,而是创建一个具有一个条目的数据框,每个单元格包含一个似乎与原始数据没有关联的随机数列表。我试过玩弄这些代码,但什么都没用

以下是相关代码:

input <- data.frame(Treatment = c("Compost-0lb/ac 24in 60.96", "Compost-0lb/ac 6in 15.24", "Compost-20lb/ac 24in 60.96", 
"Compost-20lb/ac 6in 15.24", "Compost-40lb/ac 24in 60.96", "Compost-40lb/ac 6in 15.24"))

df <- matrix(input, ncol = 4, byrow = TRUE) %>% 
  as_tibble()%>% 
  mutate(V1 = as.character(V1), V2 = as.character(V2), V3 = as.character(V3), V4 = as.character(V4))
input%
变异(V1=as.character(V1),V2=as.character(V2),V3=as.character(V3),V4=as.character(V4))
这是我想要的输出:

    output <- data.frame("V1" = c("Compost", "Compost", "Compost", "Compost", "Compost, "Compost"), 
    "V2" = c("0lb/ac", "0lb/ac", "20lb/ac", "20lb/ac", "40lb/ac", "40lb/ac"), 
    "V3" = c("24in", "6in", "24in", "6in", "24in", "6in"), 
    "V4" = c("60.96", "15.24", "60.96", "15.24", "60.96", "15.24"))

output您可以使用
tidyr::separate()
实现这一点。唯一的“诀窍”是有两个分隔符“,”和“-”,因此可以用正则表达式匹配它们:

input %>%
  separate(Treatment,
           into = c("V1", "V2", "V3", "V4"),
           sep = c(" |-"))

在链接的帖子中,
输入
向量是交错的,一个带日期的值后跟一个带数字的值。因此,使用
矩阵(…,ncol=2)
是将所有值对放在自己的行上的一种方法。你不在那个配置中。
input %>%
  separate(Treatment,
           into = c("V1", "V2", "V3", "V4"),
           sep = c(" |-"))