我需要帮助这个方法的tinyFactor
public static int smallestFactor(int C)
此函数将整数C作为其参数,并返回除C之外的最小整数,即C因子.
参数:C - 要素的整数.
前提条件:C必须大于1.
返回:C的最小因子
public class Factor
{
public static long smallestFactor(int C)
{
for (int i = 2; i*i<= C; i++)
{
while (C % i == 0)
{
System.out.print(i + " ");
C = C / i;
}
}
return C;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要找到最小的因子,但我不知道该怎么做
我有这个矩阵:
V1 V2 V3 V4 V5 V6 V7 V8
[1,] 0.8399983 0.01558029 0.00000000 0.0000000 0.00000000 0.00000000 0.00000000 0
[2,] 0.0000000 0.89022017 0.02570281 0.0000000 0.00000000 0.00000000 0.00000000 0
[3,] 0.0000000 0.00000000 0.87910624 0.0242963 0.00000000 0.00000000 0.00000000 0
[4,] 0.0000000 0.00000000 0.00000000 0.0000000 0.03428571 0.00000000 0.00000000 0
[5,] 0.0000000 0.00000000 0.00000000 0.0000000 0.00000000 0.02988506 0.00000000 0
[6,] 0.0000000 0.00000000 0.00000000 0.0000000 0.00000000 0.73438228 0.01666667 0
[7,] 0.0000000 0.00000000 0.00000000 0.0000000 0.00000000 0.00000000 0.00000000 0
[8,] 0.0000000 0.00000000 0.00000000 0.0000000 0.00000000 0.00000000 0.00000000 …Run Code Online (Sandbox Code Playgroud) 如果我做
a = read.table(textConnection('a b c d
1 2 3 4
a b c
1 2 3 4','r'),header=T)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line 3 did not have 4 elements
Run Code Online (Sandbox Code Playgroud)
我怎样才能让 R 用 NA 替换丢失的元素而不是因错误而失败?
我有下面的代码,如果m == 2则cd仍然是数据帧,而名称(cd)来自原始数据帧d.但是,如果m == 3,则数据帧中只有一列仍然存在而cd变为一个因子而我丢失了名称......
samplesize <-100
g1 <- gl(2,samplesize/2,labels=c("V","M"))
g2 <- gl(3,samplesize/3,labels=c("V","M","U"))
m <- 2
d <- data.frame(g1,g2)
l <- sapply(d,nlevels)
cd <- d[,l <= m]
names(cd)
Run Code Online (Sandbox Code Playgroud)
即使过滤器只留下一列,我还想保留d的名称?
我有一个数据框如下.
test <- data.frame (myrank = c(0.9629,0.1296), poster = c("dial","bear"))
test
## myrank poster
## 1 0.9629 dial
## 2 0.1296 bear
Run Code Online (Sandbox Code Playgroud)
我有一个ifelse函数如下,但它只返回一个值,我无法弄清楚为什么.
color <- function (x){
x$colorchip <- ifelse((((x$myrank> 0) | (x$myrank= 0)) & x$myrank < 0.143),
"#FF0000",
ifelse((x$myrank > 0.143 & x$myrank < 0.286),
"#FF1919",
ifelse((x$myrank > 0.286 & x$myrank < 0.428571),
"#FF3333",
ifelse((x$myrank > 0.428571 & x$myrank < 0.571429),
"#FFFFFF",
ifelse((x$myrank > 0.571429 & x$myrank < 0.714286),
"#3333D6",
ifelse((x$myrank > 0.714286 & x$myrank < 0.857143),
"#1919D1",
"#0000CC" …Run Code Online (Sandbox Code Playgroud) 如果我想要自定义值假人,我该如何使用公式界面,例如,如果我想要值1和2,而不是0和1.估计可能如下所示,其中supp是因子变量.
fit <- lm(len ~ dose + supp, data = ToothGrowth)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,没有太多使用不同的值,但在许多情况下"重写"模型它可能是有用的.
编辑:实际上,我有3个级别,并希望两列的编码方式不同,因此一个是1/0变量,另一个是1/2变量.上面的例子只有两个级别.
我有一个大data.frame(1.9M记录,20列).其中一列是因子列,其值为不同长度的数字(不同的字符/数字,例如567839,234324324,3243211等)注意:这些是数字代码,没有实际值,也可能只是不同的字符这个例子的长度.
现在我想将因子转换为13位数因子,以便在数字位数小于13的情况下,因子得到前导零.
例:
Old factor Length New factor
432543532532 12 0432543532532
3285087250932 13 3285087250932
464577534 9 0000464577534
2225324324324 13 2225324324324
864235325264 12 0864235325264
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法,但现在我卡住了.问题在于整个数据集中因子的长度不同.
我试着用一个例子来尝试以下内容.
data.frame使用我执行代码的三个不同列创建,以识别问题.
> df.test <- as.data.frame(cbind(c("432543532532", "3285087250932", "464577534", "2225324324324", "864235325264"), c("3285087250932", "132543532532", "464577534", "2225324324324", "864235325264"), c("164577534", "3285087250932", "432543532532", "2225324324324", "864235325264")))
> df.test
V1 V2 V3
1 432543532532 3285087250932 164577534
2 3285087250932 132543532532 3285087250932
3 464577534 464577534 432543532532
4 2225324324324 2225324324324 2225324324324
5 864235325264 864235325264 864235325264
> levels(df.test$V1) <- paste(substr("0000000000000", 0, 13 - nchar(as.character(levels(df.test$V1)))), …Run Code Online (Sandbox Code Playgroud) 你如何根据因子变量水平的观察数量进行子集化?我有一个包含1,000,000行和近3000个级别的数据集,我想用更少的200个观察值来对这些级别进行分组.
data <- read.csv("~/Dropbox/Shared/data.csv", sep=";")
summary(as.factor(data$factor)
10001 10002 10003 10004 10005 10006 10007 10009 10010 10011 10012 10013 10014 10016 10017 10018 10019 10020
414 741 2202 205 159 591 194 678 581 774 778 738 1133 997 381 157 522 6
10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038
398 416 1236 797 943 386 446 542 508 309 452 482 425 272 261 291 145 598
10039 10040 …Run Code Online (Sandbox Code Playgroud) 我有两个数据集:
data1 就好像
id name
1 1 toyota
2 2 walmart
3 3 fox ad company
Run Code Online (Sandbox Code Playgroud)
data2 就好像
id name
1 1 sales walmart
2 2 fox advertisement company
3 3 metro toyota
Run Code Online (Sandbox Code Playgroud)
在这个实例中考虑我们期望在data2的名称中找到data1的所有名称.
怎么做这个比赛?如果我们在data1和data2之间找到匹配项,我们将打印data1的id.
例如:
id name data2
1 1 toyota 3
2 2 walmart 1
3 3 fox ad company 2
Run Code Online (Sandbox Code Playgroud)