gpt4 book ai didi

r - 根据特定标记从数据框中拆分字符列

转载 作者:行者123 更新时间:2023-12-02 07:24:55 25 4
gpt4 key购买 nike

我有一个数据框 df,第一列如下所示:

[1] "760–563" "01455–1" "4672–04" "11–31234" "22–12" "11111–53" "111–21" "17–356239" "14–22352" "531–353"

我想在 - 上拆分该列。

我在做的是

strsplit(df[,1], "-")

问题是它不工作。它返回一个列表而不拆分元素。我已经尝试添加参数 fixed = TRUE 并在 split 参数上放置一个正则表达式,但没有任何效果。

奇怪的是,如果我自己复制该列,例如:

myVector <- c("760–563" "01455–1" "4672–04" "11–31234" "22–12" "11111–53" "111–21" "17–356239" "14–22352" "531–353")

然后应用strsplit,它起作用了。

我已经检查了我的列类型和类

class(df[,1])typeof(df[,1]) 都返回我 character,所以很好.

我还使用了带有 dplyr 的数据框,所以它的类型是 tbl_df。我将它转换回 dataframe 但也没有用。

还尝试了 apply(df, 2, function(x) strsplit(x, "-", fixed = T)) 但也没有用。

有什么线索吗?

最佳答案

我不知道你是怎么做到的,但你有两种不同类型的破折号:

charToRaw(substr("760–563", 4, 4))
#[1] 96
charToRaw("-")
#[1] 2d

因此 strsplit() 工作正常,只是您的原始数据中没有破折号。调整一下,然后就可以了:

strsplit("760–563", "–")
#[[1]]
#[1] "760" "563"

关于r - 根据特定标记从数据框中拆分字符列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33770017/

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