我有一个向量,在本例中为“ dist_SLA”,我要对其执行以下操作:
我想从尺码= 1到所有“ dist_SLA”值都采样(因此,尺码= 1,尺码= 2,尺码= 3,.....尺码=“ dist_SLA”)。 ->我称样本向量为sample.i
然后,我想使用此方法将所有样本矢量“ sample.i”转换为新的样本:应该对矢量进行转换,以便替换在sample.i中未采样的所有“ dist_SLA”值。乘以0,这样就给了我一个包含采样值和零的向量。我将新向量称为“ sp.i”
最后,我要创建一个列表,其中将所有不同的变换矢量“ sp.i”和“ dist_SLA”的lm的所有计算出的R平方结合在一起(因此,sp.1的R平方与“ dist_SLA” + sp.2的R平方加上“ dist_SLA”,等等)
我尝试了以下方法:
import java.util.*;
public class Crypto {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Please insert the text you wish to encrypt: ");
String text = input.nextLine();
text = normalizeText(text);
System.out.println(text);
}
public static String normalizeText(String s){
s.replace(" ","");
s.replace("(","");s.replace(")","");s.replace(".","");
s.replace(",","");s.replace("?","");s.replace("!","");
s.replace(":","");s.replace("'","");s.replace("\"","");
s.replace(";","");
s.toUpperCase();
return s;
}
}
但这给了我一些问题:
“ ifelse”函数为我提供了一个向量,其中与样本值相同的所有值都不会在“ sp_1”中被0代替。因此,我想要一个向量,其中仅样本值不被0代替,而其他样本值被0代替。
循环无法以这种方式工作,但我不知道如何进行。
我该如何解决?
答案 0 :(得分:0)
我相信以下内容可以满足您的需求。
请注意,您不需要sample.i
向量,仅会保存r平方值。因此,您只需要一个向量即可将其保存。
set.seed(3520) # Make the results reproducible
dist_SLA <- c(1, 4, 9, 3, 4, 6)
n <- length(dist_SLA)
fit <- numeric(length(dist_SLA))
for (i in seq_along(dist_SLA)){
smpl <- sample(n, size = i)
sp <- numeric(length(dist_SLA))
sp[smpl] <- dist_SLA[smpl]
lmi <- lm(dist_SLA ~ sp)
fit[i] <- summary(lmi)$r.squared
}
fit
#[1] 0.6480000 0.0200000 0.1739130 0.7667327 0.8711111 1.0000000
答案 1 :(得分:0)
尝试一下:
set.seed(123)
sample_ <- sample(dist_SLA, size = 3)
sample_
[1] 4 3 6
dist_SLA <- c(1, 4, 9, 3, 4, 6)
那么这会给你
dist_SLA==sample_
[1] FALSE FALSE FALSE FALSE FALSE TRUE
使用%in%给出:
dist_SLA %in% sample_
[1] FALSE TRUE FALSE TRUE TRUE TRUE
和
ifelse(dist_SLA %in% sample_, dist_SLA, 0)
[1] 0 4 0 3 4 6
因此,您的循环看起来像是要保存供以后使用的
set.seed(123)
dist_SLA <- c(1, 4, 9, 3, 4, 6)
lm_ <- vector(mode = "list", length = length(dist_SLA))
fit_ <- vector(mode = "numeric", length = length(dist_SLA))
for(x in 1 : length(dist_SLA)){
sample_ <- sample(dist_SLA, size = x)
spi <- ifelse(dist_SLA %in% sample_, dist_SLA, 0)
lm_[[x]] <- lm(dist_SLA ~ spi)
fit_[x] <- summary(lm_[[x]])$r.squared
}