gpt4 book ai didi

r - 如何从数据框列中提取信息以制作新的数据框

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

我有一个数据框,第一列“原始数据”,内容如下:

Raw Data
USGS 162 1994-10-15 14 A
USGS 162 1994-10-16 49 A
USGS 162 1994-10-17 39 A
......

我正在尝试创建一个新的数据框,它现在有两列而不是一列。第一列将包含日期,第二列将包含整数值,因此它看起来像这样:

Date        Integer
1994-10-15 14

我知道您可以使用 strptime() 和 format() 来提取年、月、日,但我不确定当单元格中有额外的数字和字符时这是如何工作的。谢谢。

最佳答案

您可以使用read.table

 res <- read.table(text=df$RawData, header=FALSE, sep='', 
colClasses=c(NA, NA, 'Date', 'integer'), col.names=c('', '',
'Date', 'Integer', ''))[3:4]
res
# Date Integer
#1 1994-10-15 14
#2 1994-10-16 49
#3 1994-10-17 39

或者使用splitstackshape中的cSplit。之后可以使用 as.Date

将“Date”列类更改为“Date”
 library(splitstackshape)
setnames(cSplit(df, 'RawData', sep=' ', type.convert=TRUE)[,3:4,
with=FALSE], c('Date', 'Integer'))[]

或者

 library(tidyr)
extract(df, 'RawData', into= c('Date', 'Integer'),
'\\S*\\s*\\S*\\s*(\\S*)\\s*(\\S*).*', convert=TRUE)

或者

 library(data.table)#v1.9.5+
setnames(setDT(df)[, tstrsplit(RawData, ' +',
type.convert=TRUE)[3:4]], c('Date', 'Integer'))[]

注意:来自 @bgoldst 帖子的“df”

关于r - 如何从数据框列中提取信息以制作新的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29575558/

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