R语言data.table同时对多列操作

R语言数据导入时,一般会采取character的格式,导入后再进行格式转换,有时多列需要进行同一操作,比如把字符型转换成日期型,可以本办法:

1、先确定要对哪些列进行操作

> str_detect(names(chyi_erp),"日期") %>% which()
[1]  1  2 18 25

2、用data.table包

chyi_erp[,colnames(chyi_erp[,c(1,2,18,25)]):=lapply(.SD[,c(1,2,18,25)],ymd)]`

3、CSDN说字太少,不能发布,充数

本办法的关键是利用colnames函数。
colnames:检索或设置类似矩阵的对象的列名。
用法
colnames(x,do.NULL=TRUE,prefix=“col”)
colnames(x)<- v
细节
提取器函数尝试对任何类似矩阵的对象x执行一些合理的操作。如果对象具有DIMNAME,则第一个组件用作行名称,第二个组件(如果有)用于列名。对于数据帧,行名和列名最终调用行。名称和名称,但后者是首选。
如果是这样的话。如果NULL为FALSE,则在任何情况下都会返回一个字符向量(长度为NROW(x)或NCOL(x)),如果没有dimnames或dimnames的相应组件为NULL,则在前缀前加上简单数字。
数组/矩阵的替换方法将值的向量和因子值强制为character,但不为as.character分派方法。
对于数据帧,行名的值应为非重复和非缺失名称的字符向量(这是强制的),而对于colnames,其值应为(最好)唯一语法有效名称的字符矢量。在这两种情况下,值都将由as强制。字符,设置colnames将行名称转换为字符。
举例

m0 <- matrix(NA, 4, 0)
rownames(m0)
m2 <- cbind(1, 1:4)
colnames(m2, do.NULL = FALSE)
colnames(m2) <- c("x","Y")
rownames(m2) <- rownames(m2, do.NULL = FALSE, prefix = "Obs.")
m2

4 、困惑

我试着用变量代替.SD[ ]中的数字,或用列名代替,总是提示失败,不知什么原因。
请高手指点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值