2016-06-02 6 views
-1

Ich habe einen Datenrahmen von Proteinen mit ihrer Lokalisation, die wie folgt aussieht:Wie kann ich Spalten in einem Datenrahmen in R zusammenführen und verketten?

Protein_loc <- data.frame(
Pro_ID = c("Palid", "Tars", "Palid", "Eef2", "Actn1", "Tars"), 
Loc = c("Actin cyto", "Actin cyto", "Axon", "Aggresome", "Cell junc", "Cell junc")) 

Und ich es in einen Datenrahmen möchte fusionieren und verketten, die wie folgt aussieht:

Subcell_loc <- data.frame(
Loc = c("Actin cyto", "Axon", "Aggresome", "Cell junc"), 
Pro_ID = c("Palid, Tars", "Palid", "Eef2", "Actn1, Tars")) 

Ich kann dies in Excel ziemlich einfach mit der Verkettungsfunktion tun, aber ich kann keinen Weg finden, dies in R zu tun.

Jede Hilfe würde sehr geschätzt werden, danke.

+0

Ich habe versucht, Einfügen, Mischen, Schmelzen und Gießen und R Pivot-Tabellen. Das Zählen pro Standort ist kein Problem. Aber es war schwierig, Proteine ​​pro Standort in einer Zelle zu bekommen. Vielen Dank. – jtov

Antwort

1

Willkommen bei der Verwendung von R. Es sieht aus wie Sie nur nicht wissen, welche Funktion Sie verwenden sollten. Wir können aggregate verwenden:

Subcell_loc <- aggregate(Pro_ID ~ Loc, Protein_loc, paste, sep = ", ") 

Ausgang ist

  Loc  Pro_ID 
1 Actin cyto Palid, Tars 
2 Aggresome  Eef2 
3  Axon  Palid 
4 Cell junc Actn1, Tars 

Diese Funktion gilt paste(, sep = ", ") für alle Pro_ID von Gruppe Loc. Sie können mehr über aggregate von erfahren. Die Pro_ID ~ Loc ist eine Formel, bei der die linke Seite von der rechten Seite abhängt. Sie können mehr von ?formula lernen. Es ist besonders nützlich für die Erstellung von statistischen Modellen.

Die Funktion paste() wird zum Verketten von Strings verwendet. Versuchen:

Es verkettet Zeichenfolge "abc" mit "def", mit einem Trennzeichen "," in der Mitte. Sie können auch versuchen, sep = " * ".

+0

WOW, das funktioniert perfekt. Vielen Dank für deine Hilfe – jtov

Verwandte Themen