簡體   English   中英

將 Python 元組列表轉換為 R 命名向量

[英]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 作為shinyselectInput 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM