[英]Change data.frame values
区分模型值和预测值。
请考虑以下代码:
library( 'gam' )
slope = 0.55
amplitude = 0.22
frequency = 3
noise = 0.75
x <- 1:200
y <- (slope * x / 100) + (amplitude * sin( frequency * x / 100 ))
ynoise <- y + (noise * runif( length( x ) ))
gam.object <- gam( ynoise ~ s( x ) )
p <- predict( gam.object, data.frame( x = 1:210 ) )
df <- data.frame( value=p, model='y' )
将数据帧( df
)的某些model
行设置为'n'
的R语法是什么?:
df[201:210,2] <- 'n'
不起作用,也没有尝试任何变化。
http://stat.ethz.ch/R-manual/R-patched/library/base/html/Extract.data.frame.html
谢谢!
创建数据框时,请将模型的变量类型设置为字符,而不是默认值,即因子。 这可以在您创建数据框时完成。
df <- data.frame( value=p, model='y', stringsAsFactors=FALSE)
然后,您可以将任何字符值分配给数据框中的模型变量。
R> df[201:210,2] <- 'n'
R> table(df[,2])
n y
10 200
该列是一个因素:
R> sapply(df, class)
value model
"numeric" "factor"
R>
并且只有一个级别:
R> table(df[,2])
y
200
您可能需要重新调整此级别以允许'n'。
编辑:现在重温这个。 你的gam()
模型不使用第二列,所以简单地做了什么是错的
R> predict(gam.object, data.frame(x=201:210))
1 2 3 4 5 6 7 8 9 10
1.370 1.379 1.388 1.397 1.406 1.415 1.424 1.433 1.442 1.450
R>
换句话说,你既不需要y
也不需要n
但也许我在这里误解了一些东西。 如果是这样,你能否修改你的问题并使其更清楚?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.