Editing a Table

Dear All,

first let me congratulate you to Knime 2.8. Really nice additions and changes.

In 2.7 I used the R Snippet node from the community nodes with the command "rOut <- data.entry(R);" to edit data in a table. This node still works. Updating to 2.8 the node is in the workflows automatically replaced by the same node from the R(Interactive) section. With the new node, however, I can not make it work. If I for example enter "knime.out <- data.entry(knime.in)" I get the following error messages:

Fehler in de.ncols(sdata) : falsches Argument für 'dataentry'
Execute failed: Execution of R script failed: Calls: data.entry -> de -> de.ncols

How do I have to use the new nodes to interactively edit a table with R. Are there other nodes in Knime available or would this be a nice additon for an upcoming Knime version?

Thanks Jerry

Hi Jerry, 

Thanks for the feedback, I am also quite excited about the new R nodes.  One key difference between these nodes and the previous version is that the input and output data types are now data frames instead of matricies.  This means that extra conversion steps will be necesarry for methods that requruire this type (such as data.entry()).  

 

Try this:

matrix = data.matrix(knime.in)

data.entry(matrix)

knime.out <- data.frame(matrix)

 

 

Also, are you sure your nodes were automatically updated to the new interactive version or did you replace them yourself?  Nodes should never be automatically replaced and if it did this is something that we need to address.

 

Regards,

Aaron Hart

ps - data.entry() is new to me and looks pretty interesting, so thanks!

 

Many Thanks Aaron,

that was the right hint. It needs a slight modification though:

matrix = as.matrix(knime.in)

data.entry(matrix)
knime.out<- data.frame(matrix)
 
data.matrix(knime.in) alone doesn't work. If you replace it by with data.matrix(knime.in$column1$ ) it operates only works on one column. Therefore as.matrix is the right command.
 
Thanks again
Jerry

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.