首页 > 解决方案 > 将“,”替换为“。” 在数据框中的多个列值中

问题描述

我有一个包含多列的数据表。其中一些是字符列,其具有数值测量/索引,它们的值具有类似的值"12,3""1,02"值。小数用逗号代替。

我很想遍历每个这些字符/数字列,并用小数替换逗号,以进一步准备数据以进行分析。

我很想使用tidyverse函数和类似的东西gsub。这是我的众多尝试之一:

     chr.cols <- c('Agriculture', 'Industry', 'Service', 'Crops (%)', 'Other (%)', 
          'Arable (%)', 'Phones (per 1000)', 'Net migration', 'Coastline
          (coast/area ratio', 'Pop. Density (per sq. mi.)')

     countries_df <- for(y in colnames(countries)) { 
          gsub(pattern = ",", replacement = ".", x = countries$y)
     }

标签: r

解决方案


如果我们不做任何赋值,这些值就不会被替换。如果我们想保留原始数据并使用[[而不是使用原始数据集('countries_df'),请创建一个副本$

countries_df <- countries 
for(y in chr.cols) { 
   countries_df[[y]] <- gsub(pattern = ",", replacement = ".",
            x = countries_df[[y]])
   } 

请注意,这里我们使用[[而不是[这样它仍然适用于具有tbl_dfdata.table等的数据集。


推荐阅读