【问题标题】:create a new var whose value should be the square difference between the two other variables in r创建一个新的 var,其值应该是 r 中其他两个变量之间的平方差
【发布时间】:2020-04-08 15:22:02
【问题描述】:

创建一个新变量,其值应该是 imdbating 和 imdbvotes 之间差异的平方

imdbRating = (as.numeric (IMDB_data$imdbRating))
imdbVotes =(as.numeric (IMDB_data$imdbVotes))
IMDB_data$z = with(IMDB_data, (imdbRating-imdbVotes)^2)'

警告信息:

在 Ops.factor(imdbRating, imdbVotes) 中:'-' 对因子没有意义

即使在将变量从因子转换为数值后,我也得到了这个错误

【问题讨论】:

    标签: r


    【解决方案1】:

    您创建了 2 个不在数据框 IMDB_data 中的新变量。试试:

    IMDB_data$imdbRating <- as.numeric (IMDB_data$imdbRating)
    IMDB_data$imdbVotes <- as.numeric (IMDB_data$imdbVotes)
    IMDB_data$z <- with(IMDB_data, (imdbRating - imdbVotes)^2)
    

    【讨论】:

    • 谢谢。纠正它并得到输出。还有一个疑问,如果它是分类形式并且我必须以数字形式获得,我是否必须先将其转换为因子,然后再转换为数字?还是直接?
    • 不,您不需要先将其转换为因子。
    【解决方案2】:

    您遇到该错误是因为您没有使用变量imdbRatingimdbVotes(您仍在使用IMDB_data$imdbRatingIMDB_data$imdbVotes,它们是因子)。

    要解决,你应该像下面那样做

    imdbRating = (as.numeric (IMDB_data$imdbRating))
    imdbVotes =(as.numeric (IMDB_data$imdbVotes))
    IMDB_data$z = (imdbRating-imdbVotes)^2
    

    或者只是一行命令

    IMDB_data = within(IMDB_data, z <- (as.numeric(imdbRating)-as.numeric(imdbVotes))^2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多