gpt4 book ai didi

r - 如何将货币和值(value)拆分到不同的列中

转载 作者:行者123 更新时间:2023-12-02 08:26:38 24 4
gpt4 key购买 nike

我有一个包含股票数据的数据框:

stock,value
stock1,$30
stock2,£31
stock3,$50

如何溢出列值以获得两列货币和值(value)。输出示例:

stock,currency,value
stock1,$,30
stock2,£,31
stock3,$,50

最佳答案

尝试

library(data.table)#v1.9.5+
setDT(df1)[, c('currency', 'value') :=tstrsplit(value,
'(?<=[^0-9])', perl=TRUE, type.convert=TRUE)]
df1
# stock value currency
#1: stock1 30 $
#2: stock2 31 £
#3: stock3 50 $

或者

library(tidyr)
extract(df1, value, into=c('currency', 'value'), '([^0-9]+)(.*)')
# stock currency value
#1 stock1 $ 30
#2 stock2 £ 31
#3 stock3 $ 50

或者使用base R

cbind(df1[1],read.table(text=sub('(?<=[^0-9])', ' ', df1$value, 
perl=TRUE), col.names=c('currency', 'value')))
# stock currency value
#1 stock1 $ 30
#2 stock2 £ 31
#3 stock3 $ 50

数据

df1 <- structure(list(stock = c("stock1", "stock2", "stock3"), 
value = c("$30",
"£31", "$50")), .Names = c("stock", "value"), class = "data.frame",
row.names = c(NA, -3L))

关于r - 如何将货币和值(value)拆分到不同的列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31634307/

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