R 更改数据帧值 背景

R 更改数据帧值 背景,r,dataframe,R,Dataframe,区分模型值和预测值 问题 考虑以下代码: 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(

区分模型值和预测值

问题 考虑以下代码:

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' )
不起作用,我尝试过的任何变体也不起作用

相关的


谢谢大家!

列是一个因素:

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
,但可能我在这里误解了什么。如果是这样的话,请您修改一下您的问题,让它更清楚一些好吗?

该栏是一个因素:

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
,但可能我在这里误解了什么。如果是这样,请修改您的问题并使其更清楚?

创建数据框时,请将模型的变量类型设置为character,而不是默认值,即factor。这可以在制作数据帧时完成

df <- data.frame( value=p, model='y',  stringsAsFactors=FALSE)
R> df[201:210,2] <- 'n'
R> table(df[,2])
  n   y 
 10 200 
df[201:210,2]表(df[,2])
纽约
10 200 

创建数据帧时,将模型的变量类型设置为character,而不是默认的factor。这可以在制作数据帧时完成

df <- data.frame( value=p, model='y',  stringsAsFactors=FALSE)
R> df[201:210,2] <- 'n'
R> table(df[,2])
  n   y 
 10 200 
df[201:210,2]表(df[,2])
纽约
10 200