Конкатенация строк или столбцов данных - PullRequest
1 голос
/ 27 апреля 2020

Работа с R:

Я взял несколько строк букв:

Orig1 - ABCDE

Orig2 - FGHIJ

Orig3 - KLMNO

Я разбил эти строки букв, используя strsplit:

Orig1 - A B C D E

Orig2 - F G H I J

Orig3 - K L M N O

И Я помещаю каждую букву в отдельной строке и столбце в кадре данных. Каждая строка в отдельной строке с каждой последующей буквой в своем собственном столбце:

RowName   V1 V2 V3 V4 V5

Orig1     A  B  C  D  E

Orig2     F  G  H  I  J

Orig3     K  L  M  N  O

Я манипулировал этими строками букв, чтобы создать несколько измененных строк на основе различных анализов этих строк букв:

RowName   V1 V2 V3 V4 V5

Altered1  A  G  H  N  E

Altered2  F  B  C  I  O

Altered3  K  L  M  D  J

Я не могу понять, как свернуть измененные строки обратно из кадра данных. Мне нужно, чтобы это можно было преобразовать в экспортируемый файл .fasta с именами строк в качестве последующих имен последовательностей.

Вставка не работала в рамках фрейма данных, поэтому я попытался использовать немного кода из другого потока по аналогичной теме:

ldf = lapply(as.list(1:dim(df)[1]), function(x) df[x[1],])

это поместило каждый в свой собственный список, который я мог затем использовать для вставки, но я обнаружил, что вывод сбивает с толку, пытаясь экспортировать.

Буду признателен за любую помощь.

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Я не уверен, если вы хотите это

> do.call(paste,c(df[-1],sep = ""))
[1] "AGHNE" "FBCIO" "KLMDJ"

Данные

df <- structure(list(RowName = c("Altered1", "Altered2", "Altered3"
), V1 = c("A", "F", "K"), V2 = c("G", "B", "L"), V3 = c("H", 
"C", "M"), V4 = c("N", "I", "D"), V5 = c("E", "O", "J")), class = "data.frame", row.names = c(NA, 
-3L))

> df
   RowName V1 V2 V3 V4 V5
1 Altered1  A  G  H  N  E
2 Altered2  F  B  C  I  O
3 Altered3  K  L  M  D  J
1 голос
/ 27 апреля 2020

Если мы хотим, чтобы по очереди paste oing

library(dplyr)
library(stringr)
reduce(select(df, -1), str_c, sep="")
#[1] "AGHNE" "FBCIO" "KLMDJ"

data

df <- structure(list(RowName = c("Altered1", "Altered2", "Altered3"
), V1 = c("A", "F", "K"), V2 = c("G", "B", "L"), V3 = c("H", 
"C", "M"), V4 = c("N", "I", "D"), V5 = c("E", "O", "J")),
class = "data.frame", row.names = c(NA, 
-3L))
...