Hello,
Here is a dplyr solution. The main trick is to create a column of 1's,
then pipe to pivot_wider.
library(dplyr)
library(tidyr)
df.long %>%
mutate(values = 1) %>%
pivot_wider(
id_cols = sample,
names_from = marker,
values_from = values,
values_fill = NA
)
Note: your df.wide is not a data.frame, the transpose coerces it to
matrix. In this case it doesn't matter because it was just an example of
expected output but in other, real use cases you must be careful.
df.wide <- as.data.frame(df.wide)
would solve it.
Hope this helps,
Rui Barradas
Às 18:39 de 07/01/21, Yuan Chun Ding escreveu:
Dear R user,
I want to reshape a long data frame to wide format, I made the following
example files. Can you help me?
Thank you,
Yuan Chun Ding
sample <-c("xr" , "xr" , "fh" , "fh" , "fh" , "uy" , "uy" , "uy" , "uy");
marker <-c("x" , "y" , "g" , "x" , "k" , "y" , "x" , "u" , "j");
df.long <-data.frame(sample, marker);
xr <-c(1,1,NA,NA,NA,NA);
fh <-c(1,NA,1,1,NA,NA);
uy <-c(1,1,NA,NA,1,1);
df.wide <- t(data.frame(xr,fh,uy));
colnames(df.wide)<-c("x","y","g","k", "u","j");
----------------------------------------------------------------------
------------------------------------------------------------
-SECURITY/CONFIDENTIALITY WARNING-
This message and any attachments are intended solely for the individual or
entity to which they are addressed. This communication may contain information
that is privileged, confidential, or exempt from disclosure under applicable
law (e.g., personal health information, research data, financial information).
Because this e-mail has been sent without encryption, individuals other than
the intended recipient may be able to view the information, forward it to
others or tamper with the information without the knowledge or consent of the
sender. If you are not the intended recipient, or the employee or person
responsible for delivering the message to the intended recipient, any
dissemination, distribution or copying of the communication is strictly
prohibited. If you received the communication in error, please notify the
sender immediately by replying to this message and deleting the message and any
accompanying files from your system. If, due to the security risks, you do not
wish to receive further communications via e-mail, please reply to this message
and inform the sender that you do not wish to receive further e-mail from the
sender. (LCP301)
______________________________________________
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.