对R中的所有列使用公式-1/n

对R中的所有列使用公式-1/n,r,R,如果列满足小于或等于0.66的条件,如何对所有100列使用公式-1/n >read.table("~/Desktop/foldchange.csv",sep = ",",header = T)-> e >e$X<-NULL X85 = c(0.6858110076, 0.6763217948, 0.6777037797, 0.2477567046, 0.150890861, 1.4494420148 ), X86 = c(0.6344889595, 0.32385204

如果列满足小于或等于0.66的条件,如何对所有100列使用公式-1/n

>read.table("~/Desktop/foldchange.csv",sep = ",",header = T)-> e
>e$X<-NULL
X85 = c(0.6858110076, 
0.6763217948, 0.6777037797, 0.2477567046, 0.150890861, 1.4494420148
), X86 = c(0.6344889595, 0.3238520432, 0.6821503806, 1.2469503345, 
0.1967564907, 0.9990678878), X87 = c(0.3741192137, 0.6666912747, 
1.3112335946, 0.3164985959, 0.2201466863, 0.4888482588), X88 = 

c(0.3119556762, 
0.2054043658, 0.5943294282, 1.0861248907, 0.5118729002, 1.6492037186
), X89 = c(1.027412097, 0.0790170448, 1.3589022881, 0.4327791809, 
1.4486313814, 0.3194611987), X90 = c(0.894763906, 0.4914006772, 
1.1347816469, 0.6430273491, 0.3178809648, 1.073061393), X91 = c(0.628493603, 
0.4914143019, 1.0304501567, 0.7207211083, 0.1074300226, 0.3380868057
), X92 = c(1.3026422866, 1.0840773898, 1.3157557712, 0.4775421572, 
0.8786902151, 0.5843273081), X93 = c(0.3481263605, 0.4261844178, 
1.3500611203, 1.7260437158, 0.2817451212, 0.5406176877), X94 = c(0.7430725423, 
0.8863342393, 1.378542478, 1.390921504, 0.7538782912, 0.8613948595
), X95 = c(0.2210888181, 0.3678770932, 0.2777278428, 0.4768601083, 
1.1094668285, 0.9609648852), X96 = c(0.2547985487, 0.3360082943, 
1.8998726579, 0.8861691474, 0.1442648297, 1.060979381), X97 = c(0.1777107507, 
0.8203439062, 1.3921490902, 0.1545204838, 0.2105020128, 1.1803859218
), X98 = c(0.6985609805, 1.1660525045, 0.9002045257, 0.9645039183, 
0.3830624545, 0.7138528496), X99 = c(0.5112135444, 0.1983123941, 
0.4952269467, 0.7465842632, 0.6262820927, 1.2293865608), X100 = c(1.2151302507, 
0.2111249156, 0.9733885591, 0.2127452763, 0.2148471781, 0.3619375307
), X101 = c(0.4816703304, 1.0963122409, 0.9959054752, 1.3647606965, 
0.4948024448, 1.0318667062), X102 = c(0.6428557554, 0.2657349241, 
1.6929046554, 0.3760316507, 0.4520281529, 0.2360539647)), .Names =    c("Names", 
"X0", "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", 
"X11", "X12", "X13", "X14", "X15", "X16", "X17", "X18", "X19", 
"X20", "X21", "X22", "X23", "X24", "X25", "X26", "X27", "X28", 
"X29", "X30", "X31", "X32", "X33", "X34", "X35", "X36", "X37", 
"X38", "X39", "X40", "X41", "X42", "X43", "X44", "X45", "X46", 
"X47", "X48", "X49", "X50", "X51", "X52", "X53", "X54", "X55", 
"X56", "X57", "X58", "X59", "X60", "X61", "X62", "X63", "X64", 
"X65", "X66", "X67", "X68", "X69", "X70", "X71", "X72", "X73", 
"X74", "X75", "X76", "X77", "X78", "X79", "X80", "X81", "X82", 
"X83", "X84", "X85", "X86", "X87", "X88", "X89", "X90", "X91", 
"X92", "X93", "X94", "X95", "X96", "X97", "X98", "X99", "X100", 
"X101", "X102"), row.names = c(NA, 6L), class = "data.frame")
>read.table(“~/Desktop/foldchange.csv”,sep=“,”,header=T)->e
>e$X对于单个列:

df %>% mutate(Col = ifelse(Col =< 0.66, -1/Value, Value))
df%>%变异(Col=ifelse(Col=<0.66,-1/值,值))
因此,对于您的数据帧(df),请检查列(Col),该列将是列的名称,如果为true,则使用公式,如果为false,则保持原样

mutate_at(e, vars(X0:X5), function(x) ifelse(x < .66, -1 / x, x))
mutate_在(e,vars(X0:X5),函数(x)ifelse(x<0.66,-1/x,x))

请阅读并。。。然后编辑你的问题!请使用
dput()。如果你把
dput
输出,它将以
结构(列表(…
开始,它将被复制/粘贴到我们的R会话中,这真的很好。显然,你刚刚做了
头(e)
.Hi@Gregor我正在编辑这篇文章,但我不确定它是否正确。不,它应该从
结构(列表(…
)开始。既然你有这么多列,只需做一个子集,比如前6列和前6行:
dput(e[1:6,1:6])
已经足够了。既然你的问题已经得到了回答,请记住,下次再问。l1创建一个示例数据框总是很有帮助的。因此,所有答案都使用你提供的数据,我创建了一个,对于值smaler 0.66,该值是一个调整值。希望它能帮助你这将仅适用于一列HI@Gregor它不会更改0以下的任何值.66到-1/n。谢谢@Gregor把它放在一起。