我有一个由多个列组成的大数据帧(dataset_n),每个列都有一个不同的变量。 我现在专注于变量:
我想创建一个额外的列,代表给定年份的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
答案 0 :(得分:0)
要使这一行有效:
dataset_n$year[dataset_n$year==1992] <- 1
将年份向量转换为数字,如下所示:
dataset_n$year <- as.numeric(as.character(dataset_n$year))