gpt4 book ai didi

r - R中的文本到列等价物,在字符上拆分数据框

转载 作者:行者123 更新时间:2023-12-04 10:37:30 24 4
gpt4 key购买 nike

我想知道如何以与 excel 在“文本到列”功能中所做的类似的方式拆分列。有很多关于如何按字符拆分列的 stackexchange 教程,但它们没有解决我需要的 3 件事:

1)。处理一列,其中只有某些行具有该字符
2)。使用具有多列的数据框
3)。将列视为字符/因素

例如,我有一个数据框

    df <- data.frame(V1 = c("01, 02", "04", "05, 06", "07, 08", "09", "10"),
V2 = c("11, 12", "14", "13, 14", 11, 14", "13", "15")

如果我要在 excel 中使用 V1 中的文本到列,我最终会在逗号上拆分 3 列。将仅为其中包含逗号的单元格创建第二列。没有列的行会有空白单元格。我还可以选择将新列视为数字或文本。在这种情况下,我需要前导零,因此应将其视为文本。

它看起来像这样
           V1    V2   V3      
Row 1 01 02 11,12
Row 2 04 NA 14

我将如何在 R 中做类似的事情,记住我拥有的数据集有很多列,所以重命名代码中的每一列是不切实际的。

我希望这很清楚。感谢您的帮助!

最佳答案

可能这有帮助

library(splitstackshape)
cSplit(df, 'V1', sep=", ", type.convert=FALSE)
# V2 V1_1 V1_2
#1: 11, 12 01 02
#2: 14 04 NA
#3: 13, 14 05 06
#4: 11, 14 07 08
#5: 13 09 NA
#6: 15 10 NA
如果您希望两列都为 split
cSplit(df, 1:ncol(df), sep=",", stripWhite=TRUE, type.convert=FALSE)
# V1_1 V1_2 V2_1 V2_2
#1: 01 02 11 12
#2: 04 NA 14 NA
#3: 05 06 13 14
#4: 07 08 11 14
#5: 09 NA 13 NA
#6: 10 NA 15 NA
defaulttype.convert= TRUE ,这将转换为 numeric .
数据
 df <- data.frame(V1 = c("01, 02", "04", "05, 06", "07, 08", "09", "10"),
V2 = c("11, 12", "14", "13, 14", "11, 14", "13", "15") )

关于r - R中的文本到列等价物,在字符上拆分数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27436536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com