Extracting row and column from data frame in R

时间:2016-10-20 12:56:13

标签: r text-processing data-extraction

I have a csv file from which i would like to extract second column values into a data frame the example csv file looks like the image below

enter image description here

Following is the script that i written

ICVdir <- "/media/dev/Daten/Task1/T1_Images"
#loding csv file from ICV
mycsv  <- list.files(ICVdir,pattern = "*.csv",full.names = T )
af<- read.csv(file = mycsv,header = TRUE, sep = "\t")
ICV<- as.data.frame(af[,2],drop=FALSE)

The output of data.frame af is :

 subj_id.eTIV_FLIRT.FASTvol_noCSF
1             Sub1,0.824198,1360784
2             Sub2,0.792987,1350024
3             Sub3,0.831011,1304154
4             Sub4,0.840316,1277706
5             Sub5,0.928503,1562892
6             Sub6,0.840962,1367487
7             Sub7,0.776565,1486331
8             Sub8,0.845449,1394665
9             Sub9,0.924351,1496015
10           Sub10,0.885719,1450941
11       Mean eTIV_FLIRT,0.8490061,

I would like to extract the values in column eTIV_FLIRT( which is second column into a data frame

I am obtaining following output

 Error in `[.data.frame`(af, , 2) : undefined columns selected

kindly please let me know what is wrong in my code

1 个答案:

答案 0 :(得分:2)

In your code

af<- read.csv(file = mycsv,header = TRUE, sep = "\t")

you specify a tab as the separator. Your data.frame contains only one column. E.g., the first row is the single value Sub1,0.824198,1360784.

As you have only one column, you cannot extract the second with af[,2].

Simply removing the sep (leaving the default comma) should solve your problem.