gpt4 book ai didi

R - 删除 data.table 中每个因子的第一个和最后一个字符

转载 作者:行者123 更新时间:2023-12-04 22:03:41 26 4
gpt4 key购买 nike

我是 R 的新手,我有以下快速问题:
删除 data.table 中每个“单元格”的第一个和最后一个字符的最佳方法是什么?我已经从 .txt 文件中导入了数据,其中文本具有三个字符的分隔符 - “^|^”?
DT <- fread("file.txt", header = T, sep= "|")

  Row     Conc   group
^1^ ^2.5^ ^A^
^2^ ^3.0^ ^A^
^3^ ^4.6^ ^B^
^4^ ^5.0^ ^B^
^5^ ^3.2^ ^C^
^6^ ^4.2^ ^C^
^7^ ^5.3^ ^D^
^8^ ^3.4^ ^D^

我可以使用 stringi 包逐列删除“^”s列:
DT[, Row := stri_sub(Row,2,-2)]    

它会将其转换为字符,但这应该没问题。
但是,由于我使用的 data.table 有 46 列,我正在寻找更省时的方法来做到这一点。

最佳答案

或者继续你的方法:

library(data.table)
library(stringi)

cols <- names(df)
setDT(df)[, (cols) := lapply(.SD, function(x) stri_sub(x, 2, -2))]

如果要将包含数字的列转换为适当的类型,可以在注释中使用@Frank 提供的代码:
setDT(df)[, (cols) := lapply(.SD, function(x) type.convert(stri_sub(x, 2, -2)))]

关于R - 删除 data.table 中每个因子的第一个和最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38748408/

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