将Python元组列表转换为R命名向量

2024-05-11 23:25:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python网状函数,它返回类型为(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列表应该作为shinyselectInput{}参数的选项。此choices参数应将name作为显示给用户的值,将id作为程序中处理的隐藏值

selectInput("_id", "Choose name", choices)

如何转换从Python API返回的values以适应用例


Tags: nameapiid列表indexlibrarylengthlist
1条回答
网友
1楼 · 发布于 2024-05-11 23:25:54

我的同事设法想出了解决办法

# 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)

相关问题 更多 >