在R中按列替换值

在R中按列替换值,r,replace,R,Replace,我有一个如下所示的数据帧 V1 | V2 | V3 | V4 1 | NA | 2 | 5 NA | 2 | NA | NA 1 | 1 | 1 | 1 我想将dataframe转换为以下没有标题的格式 V1 | NA | V3 | V4 V2 | NA | NA | NA V1 | V2 | V3 | V4 换句话说,我希望每个单元格中的标题名都是按列排列的数字 资料 dd您的预期输出对我来说似乎很奇怪,但如果我理解得很好,您想用列名替换每个非NA吗 您可以这样做: df[!i

我有一个如下所示的数据帧

V1 | V2 | V3 | V4
1  | NA | 2  | 5
NA | 2  | NA | NA
1  | 1  | 1  | 1
我想将dataframe转换为以下没有标题的格式

V1 | NA | V3 | V4
V2 | NA | NA | NA
V1 | V2 | V3 | V4
换句话说,我希望每个单元格中的标题名都是按列排列的数字

资料


dd您的预期输出对我来说似乎很奇怪,但如果我理解得很好,您想用列名替换每个非NA吗

您可以这样做:

df[!is.na(df)] <- rep(names(df), each=nrow(df))[!is.na(df)]
考虑到您希望去掉标题,在data.frame中这是不可能的。如果需要,可以将其转换为字符矩阵并删除dimnames属性

df2 = as.matrix(df); attributes(df2)$dimnames<-NULL

df2=as.matrix(df);属性(df2)$DIMNAMES如何获取前两列。如果这些都是错误的,我想你需要
dd[]
df=data.frame(V1=c(1, NA, 1), V2=c(NA, 2, 1), V3=c(2, NA, 1), V4=c(5, NA, 1))
df2 = as.matrix(df); attributes(df2)$dimnames<-NULL