繁体   English   中英

更改data.frame值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM