【问题标题】:How to convert a csv file to lowercase/uppercase maintaining its structure?如何将 csv 文件转换为小写/大写以保持其结构?
【发布时间】:2014-05-17 07:02:04
【问题描述】:

我有一个包含一些列的 csv 文件,每列都有以不同方式写入的值,例如“Car”和“CAR”。我希望将所有值转换为小写,我正在使用以下代码:

data <- read.table(pipe("cut -d' ' -f6 iis_raw.csv"))
data <- tolower(data)

但结果是一堆值,例如:

70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 61, 61, 61, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 70, 70, 70)"

我做错了什么?

【问题讨论】:

    标签: r csv tolower


    【解决方案1】:

    您似乎正在尝试将tolower 直接应用于data.frame。你应该改用lapply

    X <- read.table(text = "V1,V2,V3
                    A,B,C
                    A,B,D
                    A,G,X
                    a,g,f", header = TRUE, sep = ",")
    X
    #   V1 V2 V3
    # 1  A  B  C
    # 2  A  B  D
    # 3  A  G  X
    # 4  a  g  f
    tolower(X)
    # [1] "c(2, 2, 2, 1)" "c(1, 1, 3, 2)" "c(1, 2, 4, 3)"
    lapply(X, tolower)
    # $V1
    # [1] "a" "a" "a" "a"
    # 
    # $V2
    # [1] "b" "b" "g" "g"
    # 
    # $V3
    # [1] "c" "d" "x" "f"
    
    X[] <- lapply(X, tolower)
    X
    #   V1 V2 V3
    # 1  a  b  c
    # 2  a  b  d
    # 3  a  g  x
    # 4  a  g  f
    

    【讨论】:

      【解决方案2】:

      试试:

      data[] <- lapply(data, tolower)
      

      因为我认为您不能像这样在数据帧上使用tolower。在这里,我使用CO2 数据集进行此操作。

      CO2[] <- lapply(CO2, tolower)
      

      【讨论】:

      • 我们真的几乎同时发布了我们的答案吗?思路+1。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2013-02-04
      • 1970-01-01
      相关资源
      最近更新 更多