从可谐振物体(R,R闪亮)中检索值 [英] Retrieving values from an rhandsontable object (R, R shiny)

查看:112
本文介绍了从可谐振物体(R,R闪亮)中检索值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用(出色的)rhansontable软件包,该软件包稍后将包含在 R 闪亮的网页中.用户可以在某些位置单击,我想知道如何检索单击行的信息. 下面是一个示例(要在 R 终端中复制粘贴):

I use the (awesome) package rhandsontable that will later be included in an R shiny webpage. The user can click at some places, and I want to know how to retrieve the info on which rows was clicked. Here is an example, (to be copy&paste in an R terminal):

library(rhandsontable)

## Create the dataset
min = c(1,seq(2,34,by=2))
kmh = c(0,seq(7,23,by=1))
mph = round( kmh / 1.609344, digits=0 )
stop.speed = rep(FALSE, length(min))    
DF = data.frame(min, kmh, mph, stop.speed, stringsAsFactors = FALSE)

#plot the table
r = rhandsontable(DF, useTypes = TRUE)

我考虑过将其转换为 R 对象:

I thought about converting it to an R object:

hot_to_r(r)

Error in (function (data, changes, params, ...)  : 
argument "params" is missing, with no default

推荐答案

该问题已有4年历史了,但仍然与rhandsontable软件包用户有关.而且,Lyx上面提供的解决方案不再起作用.以下是解决该问题的简便方法.

The question is 4 years old, but still relevant for the rhandsontable package users. Also, the solution provided by Lyx above no longer works. Following is an easy fix to the problem.

每个rhandsontable对象都是一个深层嵌套的列表.它的元素之一是data元素,它本身嵌套在x元素下面.但是,数据为json格式,但是可以使用jsonlite包中的fromJSON()函数将其轻松转换为data.frame.

Every rhandsontable object is a deeply nested list. One of its elements is the data element, which itself is nested under the x element. However, the data is in json format, but it can easily be converted to a data.frame by using the fromJSON() function in the jsonlite package.

library(rhandsontable)
library(jsonlite)

hands_on_table <- rhandsontable(mtcars)
data_frame <- fromJSON(hands_on_table$x$data)
head(data_frame)

   mpg cyl disp  hp drat    wt  qsec vs am gear carb
1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
5 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
6 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

还必须提及的是,使用hot_to_rjsonlite::fromJSON的主要区别在于前者在应用程序运行时使用,而后者仅在交互式R会话中起作用.

It is important to also mention that the main difference between using hot_to_r and jsonlite::fromJSON is that the former is used while the app is running and the latter only works in an interactive R session.

这篇关于从可谐振物体(R,R闪亮)中检索值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆