gpt4 book ai didi

r - 我得到 NA 在 R 中的字符列上应用分离()函数

转载 作者:行者123 更新时间:2023-12-02 09:53:22 24 4
gpt4 key购买 nike

我正在尝试拆分格式非常不同的列。例如:

pharma <- c("DOXORUBICINA CLORH. FAM 50MG POL O LIOF",
"DROSPIRENONA/ETINILESTR. 3/0,02MG CM REC",
"DROSPIRENONA/ETINILESTR. 3/0,03MG CM REC",
"ETRAVIRINA 100 MG CM",
"AGALSIDASA ALFA 1MG/ML X 3,5 ML FAM")

我正在使用 separate() 拆分为两个不同的列(我需要分开产品名称(即 DOXORUBICINA CLORH.FAM)和详细信息(50MG POL O LIOF)) 。代码是:

separate(data.frame(A = pharma), col = "A" , into = c("x","y"),sep = "(?<=[a-zA-Z])\\s*(?=[0-9])")

但是我有来自 R 的下一个:

                                         x               y
1 DOXORUBICINA CLORH. FAM 50MG POL O LIOF
2 DROSPIRENONA/ETINILESTR. 3/0,02MG CM REC <NA>
3 DROSPIRENONA/ETINILESTR. 3/0,03MG CM REC <NA>
4 ETRAVIRINA 100 MG CM
5 AGALSIDASA ALFA 1MG/ML X
Warning messages:
1: Expected 2 pieces. Additional pieces discarded in 1 rows [5].
2: Expected 2 pieces. Missing pieces filled with `NA` in 2 rows [2, 3].

我看不到发生了什么。

非常感谢任何帮助。预先感谢您!

最佳答案

第二行和第三行的数据在字母和空格之间包含一个点,您的模式仅占字母和数字之间的 0+ 空格字符。

您可以使用

sep = "(?<=[a-zA-Z])\\W+(?=[0-9])" 

sep = "(?<=[a-zA-Z])\\W*(?=[0-9])"

\W 模式匹配任何非单词字符、除字母、数字和 _ 之外的任何字符。

请参阅regex demo .

R 测试:

> separate(data.frame(A = pharma), col = "A" , into = c("x","y"), sep = "(?<=[a-zA-Z])\\W*(?=[0-9])")
x y
1 DOXORUBICINA CLORH. FAM 50MG POL O LIOF
2 DROSPIRENONA/ETINILESTR 3/0,02MG CM REC
3 DROSPIRENONA/ETINILESTR 3/0,03MG CM REC
4 ETRAVIRINA 100 MG CM

关于r - 我得到 NA 在 R 中的字符列上应用分离()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61276543/

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