让我再试一次:):
我写了一些闪亮的代码,一些心理治疗师可以对问卷表进行图形化的诊断。
我有不同的时间戳(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")})对我来说什么都不是。有没有人能给我一个提示,我的错误在哪里?
非常感谢
发布于 2018-05-09 19:35:11
您需要将CTQ_dat()视为一个函数,而不是一个data.frame。函数中的最后一行将是此函数的返回值。
我修改了你的函数,但不能测试它,因为我没有数据。
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
)https://stackoverflow.com/questions/50249326
复制相似问题