Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除使用as.formula添加的空格_R - Fatal编程技术网

删除使用as.formula添加的空格

删除使用as.formula添加的空格,r,R,我从文本创建了一个公式,但结果公式包含不需要的空格。有没有办法防止这种情况 # text in which variables for formula are stored mainEffectText ="age sex bmi cohort" interactionText="age*cohort" # get text into R mainEffects <- read.table(textConnection(mainEffectText)) mainEffects <

我从文本创建了一个公式,但结果公式包含不需要的空格。有没有办法防止这种情况

# text in which variables for formula are stored

mainEffectText ="age sex bmi cohort"
interactionText="age*cohort"

# get text into R

mainEffects <- read.table(textConnection(mainEffectText))
mainEffects <- t(mainEffects)
mainEffects <- as.character(mainEffects[,1])

interactions <- read.table(textConnection(interactionText))
interactions <- t(interactions)
interactions <- as.character(interactions[,1])


# put all terms into one vector
allTerms <- c(mainEffects,interactions)

# create formula
form <- as.formula(paste("Surv(time, event) ~ ",paste(allTerms, collapse=" +")))

空间不是一个真正的问题,但无论如何,请尝试以下方法:

# inputs
mainEffectText <- "age sex bmi cohort"
interactionText <- "age*cohort"
lhs <- "Surv(time, event)"

both <- paste(mainEffectText, interactionText)
paste0(gsub(" ", "", lhs), "~", gsub(" ", "+", both))
如果输入为这种形式(
lhs
如上所述),则使用:

# inputs
mainEffects <- c("age", "sex", "bmi", "cohort")
interactions <- "age*cohort"

both <- paste(paste(mainEffects, collapse = " "), 
              paste(interactions, collapse = " "))
paste0(gsub(" ", "", lhs), "~", gsub(" ", "+", both))
#输入

mainEffects为什么空格是一个问题?它是否过于可读?在运行回归时,空格似乎没有问题。我正在努力提高我对R的这些方面的理解。我尝试了一些不起作用的事情。我已经得到你的建议很多年了。当使用.formula时,空格仍然显示,对吗?是的,如果将其转换为公式并打印公式,则空格将显示。如果
s
是上面生成的字符串,则
fo
"Surv(time,event)~age+sex+bmi+cohort+age*cohort"
# inputs
mainEffects <- c("age", "sex", "bmi", "cohort")
interactions <- "age*cohort"

both <- paste(paste(mainEffects, collapse = " "), 
              paste(interactions, collapse = " "))
paste0(gsub(" ", "", lhs), "~", gsub(" ", "+", both))