Печать кавычек вокруг строк из вывода "cat" в R - PullRequest
0 голосов
/ 17 января 2019

У меня есть такой фрейм данных:

df<-data.frame(S1=c(rep("A:A",10),rep("G:G ",10)),
           S2=c(rep("A:A",10),rep("G:G",10)),
           S3=c(rep("A:A",10),rep("T:T", 10)),
           stringsAsFactors = FALSE)

Возможно, вы заметили, что "G: G" на S1 имеет пробел в конце, это преднамеренно.

И у меня есть функция, которая применяет «уникальный» ко всем столбцам фрейма данных и возвращает таблицу со всеми уникальными значениями для каждого столбца.

Функция:

loop.unique<-function(df){
     w<-create.df(x=capture.output(for (i in colnames(df)){
        cat(unique(df[[i]]),"\n")}),
     y=c("unique.vals"))
     z<-create.df(x=colnames(df),y=c("col"))
     v<-cbind(z,w)
    return(v)
}

Выход:

   col unique.vals
1  S1   A:A G:G  
2  S2    A:A G:G 
3  S3    A:A T:T

На больших наборах данных четкое различие для строки "GG" на S1 не столь очевидно, поэтому я хотел бы, чтобы вывод выглядел больше как "print (unique (df)" "), как в этой функции:

loop.unique.extra<-function(df){
    for (i in colnames(df)){
       print(unique(df[[i]]),na.print="<NA>")
 }
}

Что дает этот вывод:

[1] "A:A"  "G:G "
[1] "A:A" "G:G"
[1] "A:A" "T:T"

Здесь я четко вижу дополнительное пространство в конце строки GG на S1

И то, что я хотел бы видеть, это что-то вроде:

1 S1 "A:A"  "G:G "
2 S2 "A:A" "G:G"
3 S3 "A:A" "T:T"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...