使用 awk 将稀疏矩阵转换为 ARFF

2024-04-09

我正在处理稀疏矩阵格式的极大数据集。

数据具有归档格式(3 个制表符分隔的列,其中第一列中的字符串对应于行,第二列中的字符串对应于属性,第三列中的值是加权分数)。

church place 3
church institution 6
man place 86
man food 63
woman book 37

我想使用 awk (如果可能的话)将其转换为 arff 格式,以便使用上面的内容作为输入,我可以获得以下输出:

@relation 'filename'
@attribute "place" string
@attribute "institution" string
@attribute "food" string
@attribute "book" string


@data
3,6,0,0,church
86,0,63,0,man
0,0,0,37,woman

我已经看到这个 awk 文件完成了HERE https://stackoverflow.com/questions/9234232/too-many-attributes-for-arff-format-in-weka,产生的结果与我需要的非常相似。 但是,输入有点不同。我试图通过更改 FS = "|" 来操纵提供的代码到“\t”,但它不会产生预期的结果。 有人建议我如何操作这个 awk 代码将我的输入转换为我想要的输出吗?


我不知道 arff 是什么(我也不需要知道来帮助您将文本转换为不同的格式),所以让我们从这里开始:

$ cat tst.awk
BEGIN{ FS="\t" }
NR==1 { printf "@relation '%s'\n", FILENAME }
{
    row = $1
    attr = $2

    if (!seenRow[row]++) {
        rows[++numRows] = row
    }

    if (!seenAttr[attr]++) {
        printf "@attribute \"%s\" string\n", attr
        attrs[++numAttrs] = attr
    }

    score[row,attr] = $3
}
END {
    print "\n\n@data"
    for (rowNr=1; rowNr<=numRows; rowNr++) {
        row = rows[rowNr]
        for (attrNr=1;attrNr<=numAttrs;attrNr++)  {
            attr = attrs[attrNr]
            printf "%d,", score[row,attr]
        }
        print row
    }
}
$
$ cat file
church  place   3
church  institution     6
man     place   86
man     food    63
woman   book    37
$
$ awk -f tst.awk file
@relation 'file'
@attribute "place" string
@attribute "institution" string
@attribute "food" string
@attribute "book" string


@data
3,6,0,0,church
86,0,63,0,man
0,0,0,37,woman

现在,告诉我们哪里出了问题,我们就可以从那里开始。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 awk 将稀疏矩阵转换为 ARFF 的相关文章

  • 如何在正则表达式之后打印单词但不打印相似的单词?

    我想要一个 awk 或 sed 命令来打印正则表达式之后的单词 我想找到一个单词后面的单词 但不是看起来相似的单词 该文件如下所示 somethingsomething X Windows Icon xournal somethingsom
  • 仅当重复行与模式匹配时才删除它们

    这个问题 https stackoverflow com questions 1444406 how can i delete duplicate lines in a file in unix有一个很好的答案说你可以使用awk seen
  • 匹配模式后添加行[重复]

    这个问题在这里已经有答案了 我有一个文件说test具有以下值 Linux Solaris Fedora Ubuntu AIX HPUX 如何在匹配 AIX 的行后面添加一行系统主机名 如果我做 echo hostname gt gt tes
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • 用于计算数据文件中数字列表的平均值的脚本

    文件data txt包含以下内容 1 00 1 23 54 4 213 2 3 4 脚本的输出应该是 ave 54 646 一些简单的脚本是首选 这是一种方法 awk s 1 END print ave s NR RS file ave 5
  • 如何将查找和替换限制为 CSV 中的一列?

    我有一个 4 列 CSV 文件 例如 0001 fish animal eats worms I use sed对文件进行查找和替换 但我需要将此查找和替换限制为仅在第 3 列中找到的文本 如何让查找和替换仅发生在这一列上 您确定要使用se
  • awk 返回两个变量

    现在这就是我正在做的事情 ret ls la awk print 3 9 usr echo ret awk print 1 fil echo ret awk print 2 问题是我没有运行ls我正在运行一个需要时间的命令 因此您可以理解其
  • 如何自动转换十六进制代码以将其用作 Java 中的 byte[]?

    我这里有很多十六进制代码 我想将它们放入 Java 中 而不需要向每个实体附加 0x 喜欢 0102FFAB 和我必须执行以下操作 byte test 0x01 0x02 0xFF 0xAB 我有很多很长的十六进制代码 有什么办法可以自动做
  • JSON 转换带有整数键的 Map

    我有一个测试代码的小样本 我尝试将 Map 转换为 JSON 字符串并返回 在解析 JSON 字符串时 结果映射包含字符串键 1 而不是整数键 1 从而导致测试失败 用作此映射的键的 POJO 也会发生同样的情况 这是预期行为还是我省略了
  • 使用软件合成器将 MIDI 文件转换为原始音频

    我正在尝试直接从我的 Android 应用程序动态生成一个小型 MP4 音频 视频文件 我最初的攻击计划 用户输入一些基本的歌曲数据 和弦进行等 应用程序会构建一个 MIDI 文件 该系统为每个和弦构建和弦图 并使用 MIDI 读取器生成与
  • 选择多个模式的 awk 代码

    这是我的输入文件 比如modified txt r4544 n479826 2012 08 28 07 12 33 0400 Tue 28 Aug 2012 1 line Changed paths M branches 8 6 0 con
  • AWK 将十进制转换为二进制

    我想使用 AWK 将文件中的十进制数字列表转换为二进制 但似乎没有内置方法 示例文件如下 134218506 134218250 134217984 1610612736 16384 33554432 这是一个 awk 方式 为您的乐趣而函
  • AWK 或 sed 方式粘贴非相邻行

    cat file aaa bbb ccc ddd eee jjj kkk lll mmm nnn ooo ppp 以下 AWK 命令会将 mmm 行粘贴到 ddd eee 行的末尾 有没有更简单的方法使用 AWK 或 sed 来做到这一点
  • 我应该使用 AWK 或 SED 删除 CSV 文件中引号之间的逗号吗? (重击)

    我有一堆日常打印机登录CSV格式 我正在编写一个脚本来跟踪使用了多少纸张并将信息保存到数据库中 但我遇到了一个小问题 本质上 日志中的一些文档名称中包含逗号 全部用双引号引起来 并且由于它采用逗号分隔格式 所以我的代码搞乱了并将所有内容推到
  • 向 CSV 文件添加新列

    我有一个 CSV 文件 如下所示 12345 TestTest 1 2 TestTest 我想将日期 例如 YYYY MM DD HH MM SS 添加到 CSV 文件的开头或结尾 正如您在上面的示例中所看到的 双引号 包含列上的值 逗号
  • Perl 脚本(或任何东西)来合计 CSV 列

    我写了 在其他人的很多帮助下 awk command https stackoverflow com questions 4159224 excel and awk disagree about csv totals 4159404 415
  • 如何 grep 文件中不区分大小写的字符串?

    我有一个文件file1其结尾为Success OR success 我想要grep为了这个词success以一种不区分大小写的方式 我写了以下命令 但它区分大小写 cat file1 grep success 我怎样才能改变它 以便它ret
  • 如何从 Unix 文件中删除空行

    我需要从输入文件中删除所有空白行并写入输出文件 这是我的数据如下 11216 33 1032747 64310 1 0 0 1 878 0 0 0 1 1 1 087 5 1 1 18 JAN 13 000603221321 11216 3
  • 从 shell 查找不包含特定注释的 XML 文件

    我想搜索 awk grep sed 几个 XML 文件 pom xml 文件 跳过某些文件夹 而且 第一个条件是它们必须包含标签
  • awk 脚本中出现“BEGIN 块必须有操作部分”错误

    这是我的代码 bin sh filename usr bin find name INSTANCE log echo filename is filename awk BEGIN print Processing file filename

随机推荐

  • Django 注销问题

    这是我在 Django 身份验证中遇到的问题 访问需要登录的页面 注销 访问 django contrib auth logout 访问原始登录保护页面 您仍处于登录状态 有什么想法如何解决这个问题吗 我的 Django 会话设置是 SES
  • Gradle 自定义插件:添加扩展对象的依赖项

    我正在尝试编写一个插件来添加依赖项project dependencies根据插件扩展对象中收集的信息 但这似乎是不可能的 事实上 来自扩展对象的数据仅在新任务或project afterEvaluate关闭 但在这些地方添加的依赖项将被忽
  • 如何更改图像中的像素

    我实际上尝试执行以下操作 我已在 bitmapdata 对象中加载了外部图像 并从中创建了一个位图 我将其附加到 sprite MovieClip 以便在其上包含鼠标事件 现在 根据前面的逻辑 我加载了两个相同大小的图像 比方说圆圈 其中一
  • 区分 gcc 诊断

    我在解释 gcc 4 8 2 警告和错误时遇到问题 更准确地说 很难判断一个问题从哪里结束 另一个问题从哪里开始 我只能通过控制台访问构建机器 因此不能选择使用 IDE 我真的需要能够快速区分各个问题 有没有办法让 GCC 在不同的诊断消息
  • 如何在 Visual Studio Code 的 Zen 模式下显示选项卡?

    In Visual Studio Code how to you keep tabs the tabs from hiding when you enter Zen mode Ctrl K Z 我自己回答这个问题 因为我不得不这样做几次 而
  • Java常量示例(创建仅包含常量的java文件)

    声明只有常量的 java 文件的最佳实践是什么 public interface DeclareConstants String constant Test OR public abstract class DeclareConstants
  • PHP中虚函数的正确实现?

    在我的工作场所 仅限 php 我们有一个数据库抽象的基类 当您想要将新的数据库表添加到基础层时 您必须创建该基类的子类并重写一些方法来定义使用该表的单独行为 正常行为应该保持不变 现在我在我们公司见过很多新程序员 他们只是重写默认行为的方法
  • 通过指针创建字符串

    我了解到指针指向内存地址 因此我可以使用它来更改该地址处设置的值 像这样 int pPointer iTuna pPointer这里有内存地址iTuna 所以我们可以使用pPointer改变值iTuna 如果我打印pPointer内存地址被
  • SQL Server 时区更改

    我在同一个 SQL Server 上有 2 个数据库 是否有可能一个在太平洋标准时间 另一个在东部标准时间 不 日期 时间源自运行 SQL Server 实例的计算机的操作系统 不过 您可以拥有一个自定义 UDF 您可以调用该 UDF 而不
  • 将准备好的语句与 JDBCTemplate 结合使用

    我正在使用 JDBC 模板 并希望使用准备好的语句从数据库中读取数据 我迭代 csv 文件中的多行 并在每一行上使用相应的值执行一些 SQL 选择查询 我想加快从数据库的读取速度 但我不知道如何让 JDBC 模板与准备好的语句一起使用 有的
  • 带有闪亮下载数据按钮的自定义 html

    我想知道如何使闪亮downloadHandler使用自定义 html UI In my index html我有以下内容 a class shiny download link shiny bound output export a 并且在
  • 当 AudioSessionActive 为 NO 时,无法通过硬件按钮控制 AVAudioPlayer 的音量

    我正在构建一个路线导航应用程序 可以播放周期性的简短声音片段 无论屏幕是否锁定 声音都应该播放 应该与其他音乐播放混合 并且应该在播放此音频时使其他音乐闪避 Apple 在 29 20 分钟的 WWDC 2010 session 412 i
  • WPF ComboBox DropDown 部分出现在错误的位置

    我在 XAML 窗口上放置了几个 ComboBox 当我展开其中任何一个时 下拉部分会出现在屏幕的左上角 我使用 Visual Studio 2008 C Express 我不记得当我使用Visual Studio 2008 试用版 时有这
  • 如何对密码进行哈希处理

    我想在手机上存储密码的哈希值 但我不知道该怎么做 我似乎只能找到加密方法 应该如何正确地对密码进行哈希处理 考虑到今天 2012 年 的最佳实践 这里的大多数其他答案都有些过时了 NET 中原生可用的最强大的密码哈希算法是 PBKDF2 由
  • 带空间的自动完成文本视图

    我有一个 Room 数据库并创建了一个模型和 viewModel 我想知道如何使自动完成文本视图与数据库数据和视图模型一起工作 以在用户输入时过滤客户列表 视图模型 class CustomerVM ViewModel private va
  • R Notebook HTML 格式 - 添加到分页表的超链接

    我希望从 R Notebook 编写一个 html 文件 其中包含带有超链接的分页表 可以使用插入超链接knitr kable 但我找不到生成的方法paged 由于我的问题似乎没有完美的解决方案 我想我应该发布我想出的解决方法 以防有人遇到
  • 代理服务器截断视图状态

    有什么方法可以模拟代理服务器截断视图状态吗 我通过将 ViewState 放在服务器端来完全避免使用 ViewState 客户端 该代码大约有 5 行长 我已经看到性能的巨大改进 http aspadvice com blogs rober
  • IE8 不显示图像(红色 x)...有时

    我对以下问题感到抓狂 这在任何其他浏览器 Chrome Firefox 上都不会发生 IE8缓存被清除 浏览器启动时会打开 HTML Javascript 页面 该页面会动态请求并创建一些图像 此 HTML 页面由 Tomcat 服务器 l
  • 下载管理器在 Android Pie 9.0 NetworkSecurityConfig 中不起作用:未指定网络安全配置,使用平台默认值

    将设备操作系统更新为Android 9 0 以前这段代码工作正常 小米A2 现在 文件没有被下载Android Pie 9 0 此外 它在奥利奥 牛轧糖 棉花糖中运行良好 这是代码片段 File myDir new File Environ
  • 使用 awk 将稀疏矩阵转换为 ARFF

    我正在处理稀疏矩阵格式的极大数据集 数据具有归档格式 3 个制表符分隔的列 其中第一列中的字符串对应于行 第二列中的字符串对应于属性 第三列中的值是加权分数 church place 3 church institution 6 man p