从可谐振物体(R,R闪亮)中检索值 [英] Retrieving values from an rhandsontable object (R, R shiny)
问题描述
我使用(出色的)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_r
和jsonlite::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屋!