我想写一个IF语句,如果条件为FALSE,则单元格保留为空.请注意,如果在C1中输入以下公式(条件为假),例如:
=IF(A1=1,B1,"")
Run Code Online (Sandbox Code Playgroud)
如果测试C1为空白或未使用,则即使C1似乎为空白=ISBLANK(C1),也会返回FALSE.这意味着=IF(A1=1,B1,"")如果不满足条件,则公式在技术上不会将单元格留空.
有关实现这一目标的方法的任何想法?谢谢,
我一直在使用zoo我很久以前安装过的软件包.今天,我创建了一个新的R脚本,并运行library(zoo)并收到以下错误:
> library(zoo)
Error in library(zoo) : there is no package called ‘zoo’
Run Code Online (Sandbox Code Playgroud)
奇怪..但是,我尝试使用重新安装包install.packages("zoo"),并获得以下内容:
> install.packages("zoo")
Installing package(s) into ‘C:/Users/U122337.BOSTONADVISORS/Documents/R/win-library/2.15’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
trying URL 'http://cran.cnr.Berkeley.edu/bin/windows/contrib/2.15/zoo_1.7-10.zip'
Content type 'application/zip' length 874474 bytes (853 Kb)
opened URL
downloaded 853 Kb
package ‘zoo’ successfully unpacked and MD5 sums checked
Warning: cannot remove prior installation of package ‘zoo’
The downloaded binary packages are in …Run Code Online (Sandbox Code Playgroud) 我试图在长度为14的向量中生成0和1的所有可能组合.是否有一种简单的方法可以将输出作为向量列表,甚至更好的数据帧?
为了更好地展示我正在寻找的东西,让我们假设我只需要一个长度为3的向量.我希望能够生成以下内容:
(1,1,1), (0,0,0), (1,1,0), (1,0,0), (1,0,1), (0,1,0), (0,1,1), (0,0,0)
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
谢谢,
我有一个NA行的数据帧:
df = data.frame(c("classA", NA, "classB"), t(data.frame(rep("A", 5), rep(NA, 5), rep("B", 5))))
rownames(df) <- c(1,2,3)
colnames(df) <- c("class", paste("Year", 1:5, sep = ""))
> df
class Year1 Year2 Year3 Year4 Year5
1 classA A A A A A
2 <NA> <NA> <NA> <NA> <NA> <NA>
3 classB B B B B B
Run Code Online (Sandbox Code Playgroud)
我故意引入了空行(NA行),因为我希望在classA行和classB行之间有一些空格.
现在,我想<NA>用空格替换,以便第二行看起来像一个空行.
我试过了:
df[is.na(df)] <- ""
Run Code Online (Sandbox Code Playgroud)
和
df[df == "NA"] <- ""
Run Code Online (Sandbox Code Playgroud)
但它没有用..
有任何想法吗?谢谢!
我想知道是否/如何作为foreach dopar循环的一部分返回多个输出.
我们来看一个非常简单的例子.假设我想将2个操作作为foreach循环的一部分,并且希望为每个值返回或保存两个操作的结果i.
对于只返回一个输出,它将如下所示:
library(foreach)
library(doParallel)
cl <- makeCluster(3)
registerDoParallel(cl)
oper1 <- foreach(i=1:100000) %dopar% {
i+2
}
Run Code Online (Sandbox Code Playgroud)
oper1将是一个包含100000个元素的列表,每个元素都是i+2i的每个值的操作结果.
假设现在我想分别返回或保存两个不同操作的结果,例如i+2和i+3.我尝试了以下方法:
oper1 = list()
oper2 <- foreach(i=1:100000) %dopar% {
oper1[[i]] = i+2
return(i+3)
}
Run Code Online (Sandbox Code Playgroud)
希望结果i+2将保存在列表中oper1,并且i+3将返回第二个操作的结果foreach.但是,列表中没有任何内容oper1!在这种情况下,只有i+3从循环返回的结果.
有没有办法在两个单独的列表中返回或保存两个输出?
我试图复制一个数据帧(动物园对象)50次作为一个整体,并将结果作为一个矩阵,但我尝试过的所有命令似乎都不成功.我可以轻松编写一个可以执行此操作的函数,但我希望结果可以轻松实现rep.
以下面的例子为例
x <- zoo(data.frame(A = c(1,2,3,4,5,6), B = c(7,8,9,10,11,12), C = c(13,14,15,16,17,18)), order.by = seq(as.Date("2012-01-01"), as.Date("2012-06-01"), by = "month"))
#> x
# A B C
#2012-01-01 1 7 13
#2012-02-01 2 8 14
#2012-03-01 3 9 15
#2012-04-01 4 10 16
#2012-05-01 5 11 17
#2012-06-01 6 12 18
Run Code Online (Sandbox Code Playgroud)
我们试着复制x2次.我要找的最终结果是:
# [,1] [,2] [,3]
# [1,] 1 7 13
# [2,] 2 8 14
# [3,] 3 9 15
# [4,] 4 10 16
# …Run Code Online (Sandbox Code Playgroud) 请考虑以下列表列表:
lst = list(list(c(1,2), c(3,4)),list(c(5,6), c(7,8)),list(c(9,10), c(11,12)))
Run Code Online (Sandbox Code Playgroud)
该列表lst包含三个列表,每个列表包含两个向量作为元素.我想通过索引组合底层列表的元素.换句话说,我想将列表1中的向量1与列表2和列表3的向量1合并,并将列表1中的向量2与列表2和列表3的向量2等合并...
这是我希望实现的结果:
res = list(c(1,2,5,6,9,10), c(3,4,7,8,11,12))
Run Code Online (Sandbox Code Playgroud)
我知道如果有两个单独的列表,可以按如下方式实现:
mapply(c, lst1, lst2)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何使用列表列表复制相同的逻辑.
有效的方法来实现吗?请记住,实际上,lst是一个包含5000个列表的列表,每个基础列表都包含大量向量.
谢谢!
我有一个带有水平图例的情节:
legend("bottomleft", inset = c(0, -0.3), bty = "n",
x.intersp=0, xjust=0,yjust=0,
legend=c("AAPL", "Information Technology",
"Technology Hardware and Equipment", "S&P 500"),
col=c("black", "red", "blue3", "olivedrab3"),
lwd=2, cex = 0.5, xpd = TRUE, ncol = 4)
Run Code Online (Sandbox Code Playgroud)
问题是图例的第一项"AAPL"和第二项"信息技术"之间存在巨大的间距.
我尝试使用调整间距txt.width(),但它根本不起作用.或者我可能没有按照指示使用此选项.这就是我在txt.width内部引入选项的方法legend():
txt.width = c(2,1,1)
Run Code Online (Sandbox Code Playgroud)
我不确定它是否相关,但我的x轴是日期轴!
有没有一种简单的方法来自定义图例中文本之间的空格?
谢谢!
我有SQL表,有大量的列.出于某种原因,某些列具有空单元而不是NULL单元.我想让所有列中的所有空单元格都为NULL.
我知道单列的方法是:
UPDATE your_table SET column = NULL WHERE column = ''
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何有效地为所有列执行类似的逻辑,而不必逐个编写列名.
谢谢,
我在R中使用了几个软件包,但是我在一台机器上运行脚本,可能已经安装了部分/全部软件包,也可能没有.
这些软件包zoo,quantmod,data.table,...,和一堆了.
这是我尝试过的:有没有办法检查是否安装了这些软件包,如果没有安装它?我不希望R浪费时间重新安装已经存在的任何软件包.
这是我尝试过的:
pckg = c("zoo", "tseries", "quantmod", "MASS", "graphics", "plyr", "data.table", "gridExtra")
is.installed <- function(mypkg){
is.element(mypkg, installed.packages()[,1])
}
for(i in 1:length(pckg)) {
if (!is.installed(pckg[i])){
install.packages(pckg[i])
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
另外,我需要为安装自动设置镜像.我不知道该怎么做.
谢谢!
r ×8
install ×2
package ×2
combinations ×1
dataframe ×1
excel ×1
excel-2010 ×1
foreach ×1
if-statement ×1
legend ×1
list ×1
na ×1
null ×1
plot ×1
rep ×1
sql ×1
sql-server ×1
zoo ×1