替换矢量值

时间:2014-11-30 20:25:28

标签: r vector replace conditional-statements gsub

我有一个由多个列组成的大数据帧(dataset_n),每个列都有一个不同的变量。 我现在专注于变量:

  1. q32,即净召回工资
  2. pgssyear,即一个人被问及有关工资的问题的年份
  3. 我想创建一个额外的列,代表给定年份的CPI(pgssyear),以便我可以在以后计算实际工资(将q32除以CPI列)。

    我尝试了以下内容: - 以不同的名称复制pgssyear(创建一个名为" year"的新向量,但内容相同)并替换第一年:1992年使用"替换"希望能够用例如1993年代替1.35等:

    attach(dataset_n)
    dataset_n$year <- pgssyear
    detach(dataset_n)
    dataset_n$year
    

    这两个选项都没有:     replace(dataset_n $ year,dataset_n $ year == 1992,1)     replace(dataset_n $ year,dataset_n $ year ==&#34; 1992&#34;,1)     with(data.frame(dataset_n),replace(dataset_n $ year,dataset_n $ year == 1992,1)))

    为我工作。我每次按摩时都会:#34;&#39;关闭&#39;不是子集表格&#34;

    dataset_n$year[dataset_n$year==1992] <- 1
    

    也没有用,我收到了消息: 警告信息: 在[<-.factor*tmp*,dataset_n $ year == 1992,value = c(NA,NA,:   无效因子水平,NA生成

    我怀疑在创建新向量时,数字数据被视为因子。

    我也尝试过:     as.numeric(gsub(1992,1,dataset_n $ year))     as.numeric(gsub(1993,1.35,dataset_n $ year))

    这次价值被取代了,但我没有实现它#34;所有这一切#34;,这就是我需要的。

    我也没有进一步的想法,所以任何帮助将不胜感激。  我见过的其他线程可能与之相关: Replace given value in vector Error in <my code> : object of type 'closure' is not subsettable

1 个答案:

答案 0 :(得分:0)

要使这一行有效:

dataset_n$year[dataset_n$year==1992] <- 1

将年份向量转换为数字,如下所示:

dataset_n$year <- as.numeric(as.character(dataset_n$year))