[英]Transforming Python list of tuples to R named vector
我有 python 網狀 function ,它返回類型為(id, name)
的兩個長度元組的列表。
# In the python API
returned_list = [
(1, "Jon Doe"),
(2, "Jane Doe"),
]
library(shiny)
library(reticulate)
# source and other staff
API <- pythonAPI()
values <- API.call() # Returns R list of 2 length lists
values
# [,1] [,2]
# [1,] List,2 List,2
for(index in 1:length(values)){
message(values[index])
# list(1, "Jon Doe")
# list(2, "Jane Doe")
這個values
列表應該是 go 作為shiny
的selectInput
choices
參數的選擇。 這個choices
參數應該有name
作為顯示給用戶的值和id
作為程序中處理的隱藏值。
selectInput("_id", "Choose name", choices)
如何轉換從 Python API 返回的values
以適合用例?
我的同事設法想出了解決方案。
# Create dataframe scaffold
df <- data.frame("name" = NA, "id" = NA)
# Bind values from values to the scaffold by rows
for (i in seq(values)) {
df_tmp <- rbind.data.frame(values[[i]])
colnames(df_tmp) <- c("name", "id")
df <- rbind(df, df_tmp)
}
## Remove empty first row
df <- df[!is.na(df$name),]
# Transform to right format for shinyapp UI
choices <- setNames(df$name, df$id)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.