gpt4 book ai didi

string - 对字符向量的 strsplit 进行 sapply 的替代方法

转载 作者:行者123 更新时间:2023-12-02 05:40:41 25 4
gpt4 key购买 nike

想象以下数据集(列向量):

df <- data.frame(a=c("AB3474","AB3482","AB3458","AB3487","AB3471","AB3452"))
df
a
1 AB3474
2 AB3482
3 AB3458
4 AB3487
5 AB3471
6 AB3452

现在我想构建一个新的向量来获取“a”在第五个位置上的值。所以生成的 df 应如下所示:

df_new
a new
1 AB3474 7
2 AB3482 8
3 AB3458 5
4 AB3487 8
5 AB3471 7
6 AB3452 5

我“sapplied”了分割的字符串(使用sapplystrsplit),但我想有更简单且希望更快的方法来解决这个问题。

有什么建议吗?

最佳答案

使用这个:

df_new <- within(df, new <- substr(a, 5, 5))

结果:

       a new
1 AB3474 7
2 AB3482 8
3 AB3458 5
4 AB3487 8
5 AB3471 7
6 AB3452 5

编辑:回答下面的评论:

within(df, new <- paste0(substr(a, 5, 5), ifelse(as.numeric(substr(a, 6, 6))>5, "b", "a")))

结果:

       a new
1 AB3474 7a
2 AB3482 8a
3 AB3458 5b
4 AB3487 8b
5 AB3471 7a
6 AB3452 5a

请注意,首选 as.numeric 以避免词法比较。

关于string - 对字符向量的 strsplit 进行 sapply 的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18187408/

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