以下代码显然是错误的.有什么问题?
i <- 0.1
i <- i + 0.05
i
## [1] 0.15
if(i==0.15) cat("i equals 0.15") else cat("i does not equal 0.15")
## i does not equal 0.15
Run Code Online (Sandbox Code Playgroud) 在R
,我正在运行以下脚本:
> 1:6 %in% 0:36
[1] TRUE TRUE TRUE TRUE TRUE TRUE
Run Code Online (Sandbox Code Playgroud)
这显然是产生逻辑向量.我已经阅读了文档,但似乎找不到基于结果返回标量的运算符,这样1:6 %in% 0:36
只会在返回TRUE
时0:37 %in% 0:36
返回FALSE
.
有人存在吗?
在R
,是否有可能让软件忽略在运行模块时定义了未使用的参数这一事实?
例如,我有一个模块multiply(a,b)
,它返回的产物a
和b
.如果我这样调用模块,我将收到错误:
multiply(a=20,b=30,c=10)
Run Code Online (Sandbox Code Playgroud)
返回这个错误只是似乎有点多余,因为所需的投入a
,并b
已被指定.有可能避免这种不良行为吗?
一个简单的解决方案就是停止指定c
,但这并不能解决为什么R
会这样做.还有另一种解决方法吗?
我正在绘制关于Gnuplot的一组数据,并希望将该函数叠加x^2
在同一个图上.我可以这样做:
plot "filename" using 1:2, x**2
Run Code Online (Sandbox Code Playgroud)
这产生了一个图,其中函数x^2
在图的整个域中延伸.我想这样,函数只显示在图的一小段上,比如x = 1到x = 2,而图的大小filename
由x = 0到x = 10表示. .我知道要自己绘制函数我能做到:
plot [1:2] x**2
Run Code Online (Sandbox Code Playgroud)
但是,如果我直观地尝试的东西不起作用,我将如何将叠加保持在一起:
plot "filename" using 1:2, [1:2] x**2
invalid expression
Run Code Online (Sandbox Code Playgroud)
当涉及到使用它时,文档似乎很难解释.
我有以下字符串:
$string = "The man has {NUM_DOGS} dogs."
Run Code Online (Sandbox Code Playgroud)
我正在通过以下函数运行它来解析它:
function parse_text($string)
{
global $num_dogs;
$string = str_replace('{NUM_DOGS}', $num_dogs, $string);
return $string;
}
parse_text($string);
Run Code Online (Sandbox Code Playgroud)
$num_dogs
预设变量在哪里.根据$num_dogs
,这可能会返回以下任何字符串:
问题是,在"该男子有1只狗"的情况下,狗是多元化的,这是不希望的.我知道这可以通过不使用parse_text
函数来解决,而是执行以下操作:
if($num_dogs = 1){
$string = "The man has 1 dog.";
}else{
$string = "The man has $num_dogs dogs.";
}
Run Code Online (Sandbox Code Playgroud)
但是在我的应用程序中,我解析的不仅仅是解决{NUM_DOGS}
所有条件而需要很多行.
我需要一种速记方式,我可以写入初始化$string
,我可以通过解析器运行,理想情况下,这不会限制我只有两个真/假的可能性.
例如,让我们
$string = 'The man has {NUM_DOGS} [{NUM_DOGS}|0=>"dogs",1=>"dog called fred",2=>"dogs called fred and harry",3=>"dogs called fred, harry and buster"].';
Run Code Online (Sandbox Code Playgroud)
是否清楚最后发生了什么?我试图使用方括号内的部分在垂直条之后开始创建数组,然后将新数组的键与{NUM_DOGS}的解析值进行比较(现在它将是$ …
我有以下列表:
<ul id="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
如何使用jQuery删除此列表的第一个元素(即数字1)并保留其余元素?
我认为这有一个非常简单的解决方案,但它证明比我预期的更难回答.
当我使用Ajax提交表单时,我想重新加载已更改的页面部分,而不是整个页面,为此我正在使用:
$('#body_container').load(a_href);
Run Code Online (Sandbox Code Playgroud)
a_href
源文件的位置在哪里.运行并#body_container
更新此命令后,div的新内容似乎无法访问原始页面标题中包含的脚本文件,即使它包含在此原始页面中.它只适用<script type="text/javascript" src="files.js"></script>
于我放在a_href
文件的开头.
然而,我实际上里面有很少的div #body_container
,我也在改变,所以这样做,我已经files.js
被包含在不同级别的很多次.这似乎导致了冲突.
有没有办法files.js
在文档标题中包含一次,然后拥有所有div,无论何时创建内容,始终认识到该文件在那里,等待使用?
在R
,我lengths
根据先前设置的参数值定义函数:
if(condition == 1){
lengths <- function(vector) {
n <- ceiling(length(vector)/2)
}
}
else if(condition == 2){
lengths <- function(vector) {
n <- length(vector)
}
}
else if(condition == 3){
lengths <- function(vector) {
n <- length(vector)*2
}
}
else{
lengths <- function(vector) {
n <- length(vector)+10
}
}
Run Code Online (Sandbox Code Playgroud)
以这种方式有条件地定义一个函数似乎有点......凌乱.有没有更好的办法?
在SQL中,假设我有一个以下布局的表:
id name age
1 george 12
2 tom 14
3 charles 19
4 henry 21
5 fiona 12
6 kate 14
...
Run Code Online (Sandbox Code Playgroud)
如果我发现我犯了一个可怕的输入错误,并且每个人实际上都是他们年龄的两倍,那么有没有办法age
在一次扫描中将列乘以2而不需要费力地遍历整个列并单独编辑每个年龄(假装我有500个条目,因此手动工作是不可能的).
有SQL解决方案吗?
在R
我有一个号码,比方说1293828893
,叫x
.
我希望拆分这个数字,以便删除中间4位数3828
并返回它们,伪代码如下:
splitnum <- function(number){
#check number is 10 digits
if(nchar(number) != 10){
stop("number not of right size");
}
middlebits <- middle 4 digits of number
return(middlebits);
}
Run Code Online (Sandbox Code Playgroud)
这是一个非常简单的问题,但我发现的唯一解决方案适用于字符串,而不是数字字符串.
如果有兴趣,我试图R
用中间方法创建一个实现,但这一步特别棘手.