Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ruby CSV更改特定列的标题_Ruby_Csv - Fatal编程技术网

使用Ruby CSV更改特定列的标题

使用Ruby CSV更改特定列的标题,ruby,csv,Ruby,Csv,CSV标头可以使用标头\u转换器和lambda表达式进行转换,如“”所示。然而,有没有一种方法可以明确地只转换第一列,而不改变其他列 例如,假设我的头是 <random string>, head1, head2, headN 我没有在示例中发现这一点,只是在。转换器接收可选的第二个参数。根据,这是一个结构,包含索引、行和标题: 索引:该行中字段的从零开始的索引 行:此行来自的数据源的行 标题:列的标题(如果可用) 例如,这将第一个标题转换为“time”,其他标题保持不变: C

CSV标头可以使用
标头\u转换器
和lambda表达式进行转换,如“”所示。然而,有没有一种方法可以明确地只转换第一列,而不改变其他列

例如,假设我的头是

<random string>, head1, head2, headN

我没有在示例中发现这一点,只是在。转换器接收可选的第二个参数。根据,这是一个
结构
,包含
索引
标题

  • 索引
    :该行中字段的从零开始的索引
  • :此行来自的数据源的行
  • 标题
    :列的标题(如果可用)
例如,这将第一个标题转换为
“time”
,其他标题保持不变:

CSV.new(f, header_converters: lambda{|h, field_info| field_info.index == 0 ? "time" : h })

我没有在示例中发现这一点,只是在。转换器接收可选的第二个参数。根据,这是一个
结构
,包含
索引
标题

  • 索引
    :该行中字段的从零开始的索引
  • :此行来自的数据源的行
  • 标题
    :列的标题(如果可用)
例如,这将第一个标题转换为
“time”
,其他标题保持不变:

CSV.new(f, header_converters: lambda{|h, field_info| field_info.index == 0 ? "time" : h })

如果您提供了输入CSV和预期输出CSV的示例,而不是让人们去阅读另一个问题,则会更好。如果您提供了输入CSV和预期输出CSV的示例,而不是让人们去阅读另一个问题,则会更好。