В Linux, вы можете использовать awk
с fread
или он может быть передан с read.table
. Здесь я изменил разделитель ,
с помощью awk
pth <- '/home/akrun/file.txt' #change it to your path
v1 <- sprintf("awk '/^(ID_REF|LMN)/{ matched = 1} matched {$1=$1; print}' OFS=\",\" %s", pth)
и чтения с fread
library(data.table)
fread(v1)
# ID_REF 1688628068_A.AVG_Signal 1688628068_A.Avg_NBEADS
#1: ILMN_1343291 62821.840 135
#2: ILMN_1343292 3255.167 131
#3: ILMN_1343293 42924.910 152
#4: ILMN_1343294 55255.210 100
# 1688628068_A.BEAD_STDERR 1688628068_A.Detection_Pval
#1: 413.93990 0
#2: 47.76587 0
#3: 539.30260 0
#4: 746.14570 0
Или с помощью read.table
read.table(pipe(v1), header=TRUE, sep=',', check.names=FALSE)
# ID_REF 1688628068_A.AVG_Signal 1688628068_A.Avg_NBEADS
#1 ILMN_1343291 62821.840 135
#2 ILMN_1343292 3255.167 131
#3 ILMN_1343293 42924.910 152
#4 ILMN_1343294 55255.210 100
# 1688628068_A.BEAD_STDERR 1688628068_A.Detection_Pval
#1 413.93990 0
#2 47.76587 0
#3 539.30260 0
#4 746.14570 0
ПРИМЕЧАНИЕ: Я изменил имя столбца 1688628068_A.Detection Pval
в 1688628068_A.Detection_Pval
По некоторым причинам дополнительные пробелы создают проблемы с fread
. С read.table
это не проблема. Таким образом, следующее также отлично работает с read.table
v2 <- sprintf("awk '/^(ID_REF|ILMN)/{ matched = 1} matched { print}' %s", pth)
read.table(pipe(v2), header=TRUE, check.names=FALSE)
# ID_REF 1688628068_A.AVG_Signal 1688628068_A.Avg_NBEADS
#1 ILMN_1343291 62821.840 135
#2 ILMN_1343292 3255.167 131
#3 ILMN_1343293 42924.910 152
#4 ILMN_1343294 55255.210 100
# 1688628068_A.BEAD_STDERR 1688628068_A.Detection_Pval
#1 413.93990 0
#2 47.76587 0
#3 539.30260 0
#4 746.14570 0
Похоже, что у вас больше имен столбцов, чем столбцов. Является ли '1688628068_A.Detection Pval' единственным столбцом ?. также, если файл имеет '#', который нужно пропустить, просто прочитайте его. 'read.table ('yourfile.txt', header = TRUE, fill = TRUE). – akrun
@akrun Да, это единственный столбец – Hashim
Один из вариантов заключается в том, чтобы изменить имя столбца в файле на «1688628068_A.Detection_Pval» и прочитать без 'fill = TRUE' – akrun