数据框根据条件重新整形

时间:2016-10-12 13:41:12

标签: r dataframe

我有以下问题,我很难解决:

我的数据框看起来像:

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)

等等所有行和列。

问题在于,如果能给我一个非常有价值的方向,我甚至无法找到解决这个任务的方法。

非常感谢

1 个答案:

答案 0 :(得分:0)

对于您的第一个问题,请尝试将您的值转换为字符:

df[]<-lapply(df, as.character)
df[df =="inf"] = "100"

然后将其转换回因子:

df[]<-lapply(df, as.factor)