read.table reads “T” as TRUE and “F” as FALSE, how to avoid?

前端 未结 3 443
忘掉有多难
忘掉有多难 2020-12-10 11:35

I have a file with the data c(\"A\",\"T\",\"B\",\"F\").

When I use:

read.csv(myfile,header=F,stringsAsFactors=F)

R in

3条回答
  •  无人及你
    2020-12-10 12:17

    I came across to similar problem here is the solution:

    #dummy data
    df <- read.csv(text="
    A,B,T,T,F
    T,T,F,T,text1
    A,T,NA,F,T",
                   header=FALSE, stringsAsFactors=FALSE)
    #data
    df
    #   V1 V2    V3    V4    V5
    # 1  A  B  TRUE  TRUE     F
    # 2  T  T FALSE  TRUE text1
    # 3  A  T    NA FALSE     T
    
    #convert logical columns to single letters
    df[,sapply(df,class) == "logical"] <-
      sapply(df[,sapply(df,class) == "logical"],
             function(i) substr(as.character(i),1,1))
    
    #result
    df
    #   V1 V2   V3 V4    V5
    # 1  A  B    T  T     F
    # 2  T  T    F  T text1
    # 3  A  T   F     T
    

提交回复
热议问题