R 如何跨列提取部分单元格值?

R 如何跨列提取部分单元格值?,r,data.table,substring,R,Data.table,Substring,我有这样一个数据框: df1Indata.table可以像下面这样做:(您的样本数据不完整,因为第一列有8个条目,第二列有7个条目,第三列有6个条目。) 库(data.table) #或者'colslappy(df1,函数(x)stringr::str_sub(x,-6,-1))或者lappy(df1,函数(x)sub('.*(=.{5}$),'',x,perl=T))lappy(df1,函数(x)sub('.*([0-9]{5}\\b'),'.\\1',x))干杯@M-M我在哪里可以了解更多关

我有这样一个数据框:


df1In
data.table
可以像下面这样做:(您的样本数据不完整,因为第一列有8个条目,第二列有7个条目,第三列有6个条目。)

库(data.table)

#或者'cols
lappy(df1,函数(x)stringr::str_sub(x,-6,-1))
或者
lappy(df1,函数(x)sub('.*(=.{5}$),'',x,perl=T))
lappy(df1,函数(x)sub('.*([0-9]{5}\\b'),'.\\1',x))
干杯@M-M我在哪里可以了解更多关于这个
sub('.*(=.{5}$),'',x,perl=T)}
你也可以做
df1%>%mutate\u all(~substring(,,nchar(.)-4))
df1[]@akrun谢谢。这是使用
stringi
df1%>%mutate\u all(~stringi::stri\u sub(,-5,-1))
n_last <- 5  

df1[, `q006_1`:= substr(q006_1, nchar(q006_1) - n_last + 1, nchar(q006_1))]