【发布时间】:2018-08-19 02:52:03
【问题描述】:
我找到了一个宠物收养数据集,其中包含宠物收养时的年龄。但是,年龄变量在同一列中包含诸如“3 个月”或“4 年”或“3 周”之类的字符串。数据集在其他方面很整洁。如何将这些变量转换为年份值?
我尝试过这样的事情:
for(i in i:nrow(Pet_Train$AgeuponOutcome)){
if(grepl(i, "month") == TRUE)
Pet_Train$Age_in_Years[i] == "0"
}
但我对循环/if 语句/我刚刚查找的这个“grepl”函数几乎没有经验。我确实有使用 mutate() 和 filter() 之类的整洁函数的经验,但我不确定如何将这些函数与这些可能的参数组合一起应用。
因为有 27,000 个实例,所以我宁愿不手动完成。
编辑: 我想出了如何使用 grepl 函数将包含“月”的实例替换为“不到一年”。但是有没有办法把确切的月数转换成小数的年份?
【问题讨论】:
-
如果您已经将数量和单位放入不同的列中(应该可以通过拆分文本来轻松完成),那么您可以执行以下操作:df[,'years']