如何在R中将已编辑的数据集分配给新变量?

时间:2018-12-03 17:05:05

标签: r

标题可能会误导您,但我在这里遇到的情况是

half_paper <- lapply(data_set[,-1], function(x) x[x==0]<-0.5)

该行应该用0代替除第一列以外的所有列。

然后我要取出half_paper并将其放入此处,以便按顺序排列除第一列以外的所有列。

prestige_paper <-apply(half_paper[,-1],2,rank)

但是我遇到了一个错误,我认为我需要以某种方式将half_paper放入data_set这样的数据集中。

感谢您的所有帮助

1 个答案:

答案 0 :(得分:1)

您的主要问题“本行应该用0代替所有列中的0.5,但第一个除外”可以通过在匿名函数中放置另一行来解决。 gets运算符<-返回右侧的值,因此您的lapply为每一列返回的值为0.5。为了解决这个问题,可以在返回修改后的向量的函数中添加另一行。

还值得注意的是lapply返回一个列表。在这种情况下,apply被替换为lapply以保持一致性,但是plyr::ddply可能更适合此特定需求。

half_mtcars <- apply(mtcars[, -1], 2, function(x) {x[x == 0] <- .5;return(x)})

prestige_mtcars_tail <- apply(half_mtcars, 2, rank)

prestige_mtcars <- cbind(mtcars[,1, drop = F], prestige_mtcars_tail)