我有一个充满ID号的宽表(从可变数量的零开始),我想将其导入KNIME,但列会自动检测为整数。我尝试手动修改导入节点对应的settings.xml
文件,以便在每次获得新文件时强制执行字符串类型导入,而无需在下午单击每列。现在输入:
<entry key="cell_class" type="xstring" value="org.knime.core.data.def.StringCell"/>
重新打开工作流程时出错。所以我还将MissValuePattern
条目修改为:
<entry key="MissValuePattern" type="xstring" value="?"/>
重新打开工作流程时仍然出错。我没有看到字符串和整数列之间有任何区别,所以我有点卡住了。
答案 0 :(得分:1)
使用行读取器节点将每行一行读入一列。然后将其附加到Cell Splitter节点并使用分隔列的空格字符(或其他任何内容)。选择&#34;作为新列&#34;单选按钮和新列将与原始列具有相同的类型,即字符串。
答案 1 :(得分:0)
使用Number to String节点。您可以单击“始终包含所有列”,并且每次导入新文件时都应自动选择所有列。
答案 2 :(得分:0)
如果您使用Line Reader并根据首选分隔符拆分列,可能会更好。
答案 3 :(得分:0)
您可以在“文件读取器”节点的对话框中为每列指定列类型。因此,打开对话框并双击要更改的列的标题。将打开一个小窗口,您可以在其中指定列的类型。将其从Integer更改为String。
答案 4 :(得分:0)
您可以手动执行任意java代码来创建新列,或使用Java Snippet (simple)或Java Snippen替换现有列。例如,您可以将整数列Col0,Col1,Col2的值的数量连接为
String myCol = $Col0$ + " " + $Col1$ + " " + $Col2$;
return myCol;
//or return $Col0$ + " " + $Col1$ + " " + $Col2$;
通常,它是用于创建数据集的新参数的非常有用的方法。