On 06/10/2019 8:23 a.m., vod vos wrote:
The problem is aa, bb and cc all in a single csv file
contains no blank line.

So what steps do you need, and which of them do you need help with?

Duncan Murdoch

The single csv file like list output.

aa(cm)
  1, 2 , 3,
  bb(mm)
   1, 2, 3,
  4, 5, 6,
  7, 8, 9,
  cc(mm)
  3, 4, 5,
  7, 5, 9,
  6, 5, 8,



  ---- 在 星期日, 06 十月 2019 05:08:41 -0700 Duncan Murdoch 
<murdoch.dun...@gmail.com> 撰写 ----
  > On 06/10/2019 7:29 a.m., vod vos via R-help wrote:
  > > I got hundreds of csv files. The real formats in each csv file are as 
follows:
  > >
  > > aa(cm)
  > > 1, 2 , 3,
  > >
  > > bb(mm)
  > > 1, 2, 3,
  > > 4, 5, 6,
  > > 7, 8, 9,
  > >
  > > cc(mm)
  > > 3, 4, 5,
  > > 7, 5, 9,
  > > 6, 5, 8,
  > >
  > > How can I use read.table or read.csv to convert the csv files
  > > to a tidy data frame format as follow:
  > >
  > > aa, bb, cc
  > > 1, 1, 3
  > > 1, 2, 4
  > > 1, 3, 5
  > > 2, 4, 7
  > > 2, 5, 5
  > > 2, 6, 9
  > > 3, 7, 6
  > > 3, 8, 5
  > > 3, 9, 8
  > >
  > > many thanks.
  >
  > You'll need more than those two functions to do the transformation you
  > want.  To work out what you need, write out the process in detail in
  > English (or another natural language), not in code.  For example:
  >
  > 1.  Read aa from file 1.
  > 2.  Read bb from file 2.
  > 3.  Read cc from file 3.
  > 4.  Expand all vectors to the same length.
  > 5.  Combine them into a single dataframe.
  >
  > Then work out each step separately.  I think you'll want to use
  > something like scan("filename", skip = 1, sep = ",") in steps 1, 2, and
  > 3, but this will add NA values at the end of each line because of the
  > final comma, so you could do this:
  >
  > aa <- scan("file1", skip = 1, sep = ",")
  > aa <- aa[!is.na(aa)]
  >
  > and similarly for the others.
  >
  > I don't know the rules for expanding that you'll need in your real data,
  > but for your example step 4 could be
  >
  >    aa <- rep(aa, each = 3)
  >
  > Then step 5 could be
  >
  >    result <- data.frame(aa, bb, cc)
  >
  > Duncan Murdoch
  >


______________________________________________
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