让我再试一次:):
我写了一些闪亮的代码,其中一些心理治疗师可以对问卷进行图形诊断。
我有不同的时间戳(messzeitpunkte),这些问卷已经完成。根据这些时间戳,构建不同的数据集(f.e):
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()中重新编码一些变量。
我试过了:
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")}))
或
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")})
对我没用。有人可以给我一个提示我的错误吗?
非常感谢
答案 0 :(得分:0)
您需要将CTQ_dat()
视为一项功能而不是数据框架。
函数中的最后一个运行行将是该函数的返回值。
我改变了你的功能,但无法测试它,因为我没有数据。
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
)