I neglected to copy this to the list:

I think we need more information. Can you give us the structure of the data 
with str(YourDataFrame). Alternatively you could copy a small piece into your 
email message by copying and pasting the results of the following code:

dput(head(YourDataFrame))

The data frame you present could not be a data frame since you say "hits" is a 
factor with a variable number of elements. If each value of "hits" was a single 
character string, it would only have 2 factor levels not 6 and your efforts to 
parse the string would make more sense. Transposing to a data frame would only 
be possible if each column was padded with NAs to make them equal in length. 
Since your example tries use the name TF2list, it is possible that you do not 
have a data frame but a list and you have no factor levels, just character 
vectors.

If you are not familiar with R, it may be helpful to tell us what your overall 
goal is rather than an intermediate step. Very likely R can easily handle what 
you want by doing things a different way. 

----------------------------------------
David L Carlson
Department of Anthropology
Texas A&M University
College Station, TX 77843-4352



-----Original Message-----
From: R-help <r-help-boun...@r-project.org> On Behalf Of Matthew
Sent: Tuesday, April 30, 2019 2:25 PM
To: r-help (r-help@r-project.org) <r-help@r-project.org>
Subject: [R] transpose and split dataframe

I have a data frame that is a lot bigger but for simplicity sake we can 
say it looks like this:

Regulator    hits
AT1G69490    AT4G31950,AT5G24110,AT1G26380,AT1G05675
AT2G55980    AT2G85403,AT4G89223

    In other words:

data.frame : 2 obs. of 2 variables
$Regulator: Factor w/ 2 levels
$hits         : Factor w/ 6 levels

   I want to transpose it so that Regulator is now the column headings 
and each of the AGI numbers now separated by commas is a row. So, 
AT1G69490 is now the header of the first column and AT4G31950 is row 1 
of column 1, AT5G24110 is row 2 of column 1, etc. AT2G55980 is header of 
column 2 and AT2G85403 is row 1 of column 2, etc.

   I have tried playing around with strsplit(TF2list[2:2]) and 
strsplit(as.character(TF2list[2:2]), but I am getting nowhere.

Matthew

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to