我有以下问题,我很难解决:
我的数据框看起来像:
row1 = c(55.7, NA, NA, "inf", 4.19, 99, 4, 15, 16, NA, 13, 0.1, 0.8, 51, NA, 44)
row2 = c(13, 1, 81, 6, NA, 0.3, NA, NA, 1.4, 89, NA, NA, 2.1, 99, 0.5, NA)
df = data.frame(row1, row2)
df = as.data.frame(t(df))
第一个问题是我需要更改值" inf"数字== 100。
我所用的一切都无济于事。 这会创建额外的NA:
data[data =="inf"] = 100
这不起作用:
data[is.na(data)] = "Skip"
我预计这是因为数据类型,但我无法弄清楚如何修复它。
第二个问题更复杂。我需要转换数据框以匹配具有最低一列的最高值列,以获得如下想法:
row3 = c("row1","V4", "V12")
row4 = c("row1", "V6", "V13")
df2 = data.frame(row3, row4)
df2 = t(df2)
等等所有行和列。
问题在于,如果能给我一个非常有价值的方向,我甚至无法找到解决这个任务的方法。
非常感谢
答案 0 :(得分:0)
对于您的第一个问题,请尝试将您的值转换为字符:
df[]<-lapply(df, as.character)
df[df =="inf"] = "100"
然后将其转换回因子:
df[]<-lapply(df, as.factor)