[R] Truncation of character fields in a data frame
Luigi Marongiu
marongiu.luigi at gmail.com
Sun Sep 27 13:56:56 CEST 2015
Dear all,
I am reading a txt file into the R environment to create a data frame,
however I have notice that some entries have a truncated version of a
field, so for instance I get "Astro" instead of "Astro 1-Astro 1" and
"Sapo" for "Sapo #1-Sapo_1" and "Sapo #2-Sapo_2", but I also get
"Adeno 40/41 EH-Adeno_40-41_EH" so the problem is not in the spaces
between the words. The txt file is a simple tab delimited file
generated from excel which I read with:
bad.data<-read.table(
"test_df.txt",
header=TRUE,
row.names=1,
dec = ".",
sep="\t",
stringsAsFactors = FALSE,
fill = TRUE
)
[the fill = TRUE was introduced because in the real case I got an
error of a missing line.]
I can recreate this file as follows:
sample <- c(rep("p.001", 48), rep("p.547", 48))
target <- c("Adeno 1-Adeno 1", "Adeno 40/41 EH-AIQJCT3", "Astro
1-Astro 1", "Sapo 1-Sapo 1", "Sapo 2-Sapo 2", "Enterovirus
1-Enterovirus 1", "Parechovirus-Parechovirus", "HEV 1-HEV 1",
"IC PDV control-AIRSA0B", "Rotavirus cam-Rotavirus cam",
"18S-Hs99999901_s1", "Noro gp II-Noro gp II", "Noro gp 1-Noro gp
1", "Noro gp 1 mod33-Noro gp 1 mod33", "C difficile
GDH-AIS086J", "C difficile Tox B-C difficile Tox B", "VTX
1-AIT97CR", "BT control Man-AIVI5IZ", "E. coli vtx 2-E. coli vtx
2", "Campy spp-AIWR3O7", "Salmonella ttr-AIX01VF", "Crypto
CP2-AIY9Z1N", "Green Fluorescent Protein-AI0IX7V", "Adeno
2-Adeno 2", "Adeno 40_41 Oly-AI1RWD3", "Astro 2 Liu-AI20UKB",
"Giardia lambia 1-AI39SQJ", "Rotavirus Liu-Rotavirus Liu 2",
"Enterovirus Bruges-Enterovirus 2 Br", "HAV 1-Hepatitis A 1",
"HEV 2-AI5IQWR", "MS2 control-AI6RO2Z", "Rotarix NSP2-AI70M87",
"CMV br-CMV br", "IC Rnase P-AI89LFF", "Salmonella hil
A-Salmonella hil A", "Shigella ipa H-AIAA0K8", "Enteroagg E.
coli-AIBJYRG", "Campy jejuni-AICSWXO", "Campy coli-AID1U3W",
"Yersinia enterocolitica-AIFAS94", "Bacterial 16S-Bacterial 16S",
"Aeromonas hydrophilia-Aeromonas hydrophilia", "V
cholerae-AIGJRGC", "Dientamoeba fragilis-AIHSPMK", "Entamoeba
histolytica-AII1NSS", "Crypto 2 J-AIKALY0", "Giardia lambia
rev-AILJJ48", "Adeno #1-Adeno_1", "Adeno 40/41
EH-Adeno_40-41_EH", "Astro #1-Astro_1", "Sapo #1-Sapo_1",
"Sapo #2-Sapo_2", "Enterovirus #1-Enterovirus_1",
"Parechovirus-Parechovirus", "HEV #1-HEV_1", "C coli jejuni
Liu-C_coli_jejuni_Li", "Rotavirus cam-Rotavirus_cam", "IC 18s-IC
18s", "Noro gp II-Noro_gp_II", "Noro gp 1-Noro_gp_1", "Noro
gp 1 mod33-Noro_gp_1_mod33", "C difficile GDH-C-difficile_GDH",
"C difficile Tox B-C_difficile_T_B", "E. coli vtx 1-E_coli_vtx_1",
"BT control Man-BT_control_Man", "E. coli vtx 2-E_coli_vtx_2",
"Campy spp NEW-Campy_spp_NEW", "Salmonella ttr-Salmonella_ttr",
"Cryptosporidium spp CP2-Cryptos_spp_CP2", "C jejuni
#2-C_jejuni_2", "Adeno #2-Adeno_2", "Adeno 40/41
Oly-Adeno_40-41_Oly", "Astro Liu #2-Astro_Liu_2", "Giardia
lambia #1-Giardia_lambia_1", "Rotavirus Liu #2-Rotavirus_Liu_2",
"Enterovirus #2 Br-Enterovirus_2_Br", "Hepatitis A
#1-Hepatitis_A_1", "HEV #2-HEV_2", "MS2 control-MS2_control",
"Rotarix NSP2 Bris-Rotarix_NSP2_Bri", "CMV br-CMV_br", "Rnase P
control-Rnase_P_control", "Salmonella hil A-Salmonella_hil_A",
"Shigella ipa H-Shigella_ipa_H", "Enteroagg E.
coli-Enteroagg_E_coli", "V parahaemolyticus-V_p_haemolyticus",
"Campy coli-Campy_coli", "Yersinia
enterocolitica-Y_enterocolitica", "Bacterial 16S-Bacterial_16S",
"Aeromonas hydrophilia-Aero_hydrophilia", "Vibrio
cholerae-Vibrio_cholerae", "Dientamoeba fragilis-Dien_fragilis",
"Entamoeba histolytica-Enta_histolytica", "Cryptosporidium spp #2
J-Crypto_spp_2_J", "Giardia lambia #2 rev-Giardia_lambia_r")
ct <- c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 18.793, NA, NA, NA, NA, NA, NA, 33.302,
NA, 32.388, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 31.398, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 8.115, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 21.161, NA, NA, NA, NA, NA, NA, 31.302,
NA, 29.785, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 31.212, 42.967, NA, 33.503,
NA, NA, NA, NA, NA, NA, 9.584, NA, NA, NA,
NA, NA, NA)
good.data <- data.frame(sample, target, ct, stringsAsFactors = FALSE)
and the structure of these object is the same:
> str(good.data)
'data.frame': 96 obs. of 3 variables:
$ sample: chr "p.001" "p.001" "p.001" "p.001" ...
$ target: chr "Adeno 1-Adeno 1" "Adeno 40/41 EH-AIQJCT3" "Astro
1-Astro 1" "Sapo 1-Sapo 1" ...
$ ct : num NA NA NA NA NA NA NA NA NA NA ...
> str(bad.data)
'data.frame': 96 obs. of 3 variables:
$ Sample: chr "p.001" "p.001" "p.001" "p.001" ...
$ Target: chr "Adeno 1-Adeno 1" "Adeno 40/41 EH-AIQJCT3" "Astro
1-Astro 1" "Sapo 1-Sapo 1" ...
$ Ct : num NA NA NA NA NA NA NA NA NA NA ...
however in the good.data case the problem with truncation does not
occur, so for instance I get the required "Astro #1-Astro_1", "Sapo
#1-Sapo_1" and "Sapo #2-Sapo_2 ".
The problem must therefore be in the format of the txt file and the
read function, possibly in the # character present in the names.
Could somebody explain me what such problem is and how to avoid it?
Many thanks
Best regards
Luigi
More information about the R-help
mailing list