Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 删除具有类似差异的列_R_Function_Apply_Variance - Fatal编程技术网

R 删除具有类似差异的列

R 删除具有类似差异的列,r,function,apply,variance,R,Function,Apply,Variance,我有一个3500 X 4000的数据帧。我试图在R中编写一个专业命令来删除矩阵中显示相同差异的任何列。我可以用一个长而复杂的命令来完成这个任务,比如 datavar <- apply(data, 2, var) datavar <- datavar[!duplicated(datavar)] datavar这与您的想法非常相似: vars <- lapply(data,var) data[,which(sapply(1:length(vars), function(x) !v

我有一个3500 X 4000的数据帧。我试图在R中编写一个专业命令来删除矩阵中显示相同差异的任何列。我可以用一个长而复杂的命令来完成这个任务,比如

datavar <- apply(data, 2, var)
datavar <- datavar[!duplicated(datavar)]

datavar这与您的想法非常相似:

vars <- lapply(data,var)
data[,which(sapply(1:length(vars), function(x) !vars[x] %in% vars[-x]))]

vars这与您的想法非常相似:

vars <- lapply(data,var)
data[,which(sapply(1:length(vars), function(x) !vars[x] %in% vars[-x]))]
vars。。。或作为替代方案:

data[ , !c(duplicated(apply(data, 2, var)) | duplicated(apply(data, 2, var), fromLast=TRUE))]
…但也不是更短:)

。。。或作为替代方案:

data[ , !c(duplicated(apply(data, 2, var)) | duplicated(apply(data, 2, var), fromLast=TRUE))]

…但也不是更短:)

我可能会采取更谨慎的路线,比如

data[, !duplicated(round(sapply(data,var),your_precision_here))]

我可能会走更谨慎的路线,比如

data[, !duplicated(round(sapply(data,var),your_precision_here))]


你是说同样的差异吗?哦,是的!我在研究协方差,我把它们搞混了。你是说同样的方差吗?哦,是的!我在研究协方差,我一直在混淆它们。这正是我想要的,谢谢托马斯。:)正是我要找的,谢谢托马斯。:)一些专业的东西,我会看看应用时这会如何影响我的数据。干杯,CarlI必须回来,使用您的脚本并将精度设置为3,因为我使用的程序会将差异降低到小数点后3位。非常感谢。Carl@Error404很高兴看到它为你解决了。浮点数的相等性一直是一个令人头痛的问题:-)一些专业的东西,我会看看在应用时这会如何影响我的数据。干杯,CarlI必须回来,使用您的脚本并将精度设置为3,因为我使用的程序会将差异降低到小数点后3位。非常感谢。Carl@Error404很高兴看到它为你解决了。浮点数相等总是一个令人头痛的问题:-)谢谢你的尝试mate:)@Thomas谢谢你的观点,但请帮我做一个简短的解释,因为(据我所知)
duplicated()
表示向量的所有重复项。提前谢谢你…对不起,你说得对…答案与
略有不同c()
的内部产生了我在你的答案中误读的问题+感谢你的尝试,mate:)@Thomas谢谢你的观点,但请帮我做一个简短的解释,因为(据我所知)
duplicated()
表示向量的所有副本。提前谢谢你…对不起,你说得对…答案与
略有不同c()
的内部产生了我在你的答案中误读的问题+1.