首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从反应式数据集中重新编码变量

从反应式数据集中重新编码变量
EN

Stack Overflow用户
提问于 2018-05-09 16:58:15
回答 1查看 79关注 0票数 1

让我再试一次:):

我写了一些闪亮的代码,一些心理治疗师可以对问卷表进行图形化的诊断。

我有不同的时间戳(messzeitpunkte),这些问卷是在哪里完成的。根据这些时间戳构建不同的数据集(f.e):

代码语言:javascript
复制
ui <- fluidPage(
  titlePanel(title = "Individualdiagnostik HSA"),
    sidebarLayout(
      sidebarPanel(
        fileInput(inputId = "datensatz", label = "1. Datensatz laden"),                     
          textInput(inputId = "pchiffre", label = "2. Patientenchiffre"),                     
            selectInput(inputId = "messzeitpunkt", label = "3.Messezeitpunkt auswählen",          ### Auswahl Dropdown Messzeitpunkt
              multiple = FALSE, selected = NULL,                                                   
                choices = c("Baseline" = "base",
                  "T0"       = "t0",
                  "T6"       = "t6",
                  "T12"      = "t12",
                  "T18"      = "t18",
                  "End"      = "end")),

server <- function(input, output) {
  datensatz_patient <- reactive({datensatz <- input$datensatz
    infile <- read.csv(datensatz$datapath, header = TRUE, ";", na = -77)
    patient <- input$pchiffre
    subset(infile, Chiffre == patient)})

messzeitpunkt <- reactive(input$messzeitpunkt)

CTQ_dat <- reactive(
  if (messzeitpunkt() == "base") 
    {subset(datensatz_patient(), select = c(Base_CTQ_v1:Base_CTQ_v28))} 
  else if (messzeitpunkt() == "end")
    {subset(datensatz_patient(), select = c(End_CTQ_v1:End_CTQ_v28))} else {})

现在我需要对CTQ_dat()中的一些变量进行重新编码。

我试过了:

代码语言:javascript
复制
CTQ_dat <- reactive(if (messzeitpunkt() == "base") 
    {subset(datensatz_patient(), select = c(Base_CTQ_v1:Base_CTQ_v28)) }
  else if (messzeitpunkt() == "end")  
    {subset(datensatz_patient(), select = c(End_CTQ_v1:End_CTQ_v28)) } 
  else {})
(if ((CTQ_dat[5]) == "5") {Recode(CTQ_dat[5], "5=1")}))

代码语言:javascript
复制
recode(CTQ_dat()[5], "1=5; 2=4; 3=3; 4=2; 5=1; NA=NA")
recode(CTQ_dat()[7], "1=5; 2=4; 3=3; 4=2; 5=1; NA=NA")
recode(CTQ_dat()[10],"1=5; 2=4; 3=3; 4=2; 5=1; NA=NA")
recode(CTQ_dat()[13],"1=5; 2=4; 3=3; 4=2; 5=1; NA=NA")
recode(CTQ_dat()[16],"1=5; 2=4; 3=3; 4=2; 5=1; NA=NA")
recode(CTQ_dat()[19],"1=5; 2=4; 3=3; 4=2; 5=1; NA=NA")
recode(CTQ_dat()[22],"1=5; 2=4; 3=3; 4=2; 5=1; NA=NA")
recode(CTQ_dat()[26],"1=5; 2=4; 3=3; 4=2; 5=1; NA=NA")
recode(CTQ_dat()[28],"1=5; 2=4; 3=3; 4=2; 5=1; NA=NA")})

对我来说什么都不是。有没有人能给我一个提示,我的错误在哪里?

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2018-05-09 19:35:11

您需要将CTQ_dat()视为一个函数,而不是一个data.frame。函数中的最后一行将是此函数的返回值。

我修改了你的函数,但不能测试它,因为我没有数据。

代码语言:javascript
复制
CTQ_dat <- reactive(
  if (messzeitpunkt() == "base") 
  {
    df <- subset(datensatz_patient(), select = c(Base_CTQ_v1:Base_CTQ_v28)) 
  } else {
    if (messzeitpunkt() == "end")  
    {
      df <- subset(datensatz_patient(), select = c(End_CTQ_v1:End_CTQ_v28)) } 
  } else {
    df <- datensatz_patient()
  }
  if (df[5] == "5") {
    Recode(df[5], "5=1")
  }
  df
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50249326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档