我刚接触R语言,有一个快速的问题: 如何最好地删除数据表中每个“单元格”的第一个和最后一个字符。我从一个.txt文件导入数据,其中文本有三个字符分隔符 - “^ | ^”?
DT <- fread("file.txt", header = T, sep= "|")
以下是删除数据表中每个“单元格”的第一个和最后一个字符的最佳方法:
DT[, lapply(.SD, function(x) substring(x, 2, nchar(x) - 1)), .SDcols = names(DT)]
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
包,我可以逐列删除"^":
DT[, Row := stri_sub(Row,2,-2)]
它将其转换为字符,但应该没问题。 然而,由于我正在使用的data.table有46列,我正在寻找更加高效的方法来完成它。
DT[,lapply(.SD,function(x) substring(x,2,nchar(as.character(x))-1))]
这个语句。 - nicolafread
如何使用其默认选项。这两种情况的答案是不同的。 - FrankDT <- fread("file.txt", header = T, sep= '^')[, !"|", with = FALSE]
- J.R.