gpt4 book ai didi

r - 将列中以冒号分隔的字符串拆分为 R 中的不同列

转载 作者:行者123 更新时间:2023-12-05 09:33:06 26 4
gpt4 key购买 nike

data <- data.frame(col1 = c('0/1:60,4:0.044:4:0:1.00:2352,160:32:28', '0/1:58,4:0.041:4:0:1.00:2304,150:28:30', '0/1:25,2:0.095:1:1:0.500:908,78:9:16'))

data

col1
1 0/1:60,4:0.044:4:0:1.00:2352,160:32:28
2 0/1:58,4:0.041:4:0:1.00:2304,150:28:30
3 1/1:25,2:0.095:1:1:0.500:908,78:9:16

我想提取第二个冒号前的数字,即0/1, 0/1, 1/1, 60,458,425,2,并将其拆分为不同的列。

data
col1 col2 col3 col4 col5
1 0/1:60,4:0.044:4:0:1.00:2352,160:32:28 0 1 60 4
2 0/1:58,4:0.041:4:0:1.00:2304,150:28:30 0 1 58 4
3 1/1:25,2:0.095:1:1:0.500:908,78:9:16 1 1 25 2

最佳答案

strsplit 两次(一次使用 :,再次使用 [/,])和 [-提取工作像这样:

tmp <- do.call(rbind.data.frame, lapply(strsplit(data$col1, ":"), function(st) as.integer(unlist(strsplit(st, "[/,]")[1:2]))))
cbind(data, setNames(tmp, paste0("col", 1+seq_len(ncol(tmp)))))
# col1 col2 col3 col4 col5
# 1 0/1:60,4:0.044:4:0:1.00:2352,160:32:28 0 1 60 4
# 2 0/1:58,4:0.041:4:0:1.00:2304,150:28:30 0 1 58 4
# 3 0/1:25,2:0.095:1:1:0.500:908,78:9:16 0 1 25 2

关于r - 将列中以冒号分隔的字符串拆分为 R 中的不同列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67449805/

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