小编Ale*_*own的帖子

如何使一个变量保持不变,其他变量与excel中的行一起变化

假设我有一个单元格A1,我想在计算中保持不变.例如,我想计算这样的值:

=(B1+4)/(A1)
Run Code Online (Sandbox Code Playgroud)

如何将其设置为如果我拖动该单元格以在多行中的单元格之间进行计算,则只有B1值会更改,而A1始终引用该单元格,而不是转到A2,A3等?

excel excel-formula

188
推荐指数
5
解决办法
82万
查看次数

显示从iPhone中的ALAsset检索到的URL中的图像

我正在使用ALAsset Framework访问设备照片库中的文件.

到目前为止,我可以访问缩略图并显示它.
我想在图像视图中显示实际图像,但我无法弄清楚如何执行此操作.

我尝试使用ALAsset对象中的URL字段但未成功.

谁知道如何做到这一点?

这是我能够访问缩略图并将其放在表格单元格中的一些代码:

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {


  static NSString *CellIdentifier = @"Cell";

  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
  }
  //here 'asset' represents the ALAsset object


  asset = [assets objectAtIndex:indexPath.row];
       //i am accessing the thumbnail here
  [cell.imageView setImage:[UIImage imageWithCGImage:[asset thumbnail]]];
  [cell.textLabel setText:[NSString stringWithFormat:@"Photo %d", indexPath.row+1]];

  return cell;
}
Run Code Online (Sandbox Code Playgroud)

iphone url image

66
推荐指数
4
解决办法
8万
查看次数

在data.table中插入一行

如果我有一个数据框

set.seed(12345) 
df=data.frame(a=rnorm(5),b=rnorm(5))
Run Code Online (Sandbox Code Playgroud)

我可以通过例如添加一行

df[6,] =c(5,6)

如果我现在在data.table中做等效的

library(data.table)
dt=data.table(df)
dt[6,]=c(5,6)
Run Code Online (Sandbox Code Playgroud)

它失败并出现错误.将行插入data.table的正确方法是什么?

r data.table

44
推荐指数
1
解决办法
7万
查看次数

R中更高级别的功能 - 是否有官方撰写操作员或咖喱功能?

我可以在R中创建一个compose运算符:

 `%c%` = function(x,y)function(...)x(y(...)) 
Run Code Online (Sandbox Code Playgroud)

要像这样使用:

 > numericNull = is.null %c% numeric
 > numericNull(myVec)
 [2] TRUE FALSE
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有一套官方功能来完成这类事情以及其他操作,比如在R.中进行currying.这主要是为了减少代码中括号,函数关键字等的数量.

我的咖喱功能:

> curry=function(...){
    z1=z0=substitute(...);z1[1]=call("list");
    function(...){do.call(as.character(z0[[1]]),
                          as.list(c(eval(z1),list(...))))}}
> p = curry(paste(collapse=""))
> p(letters[1:10])
[1] "abcdefghij"
Run Code Online (Sandbox Code Playgroud)

这对于例如聚合来说特别好:

> df = data.frame(l=sample(1:3,10,rep=TRUE), t=letters[1:10])
> aggregate(df$t,df["l"],curry(paste(collapse="")) %c% toupper)
  l    x
1 1  ADG
2 2  BCH
3 3 EFIJ
Run Code Online (Sandbox Code Playgroud)

我发现它比以下更优雅和可编辑:

> aggregate(df$t, df["l"], function(x)paste(collapse="",toupper(x)))
  l    x
1 1  ADG
2 2  BCH
3 3 EFIJ
Run Code Online (Sandbox Code Playgroud)

基本上我想知道 - 这已经为R做过吗?

functional-programming r higher-order-functions

37
推荐指数
2
解决办法
5739
查看次数

版本控制下的Gettext .po文件

目前在项目上使用Gettext,.po文件很好地保存在版本控制之下.

PO文件当然包含翻译,但除此之外,它们还包含一些元数据 - 有关可翻译字符串所在的确切文件和行号的信息.

问题是每次更新PO文件时,元数据的变化比实际的翻译要多得多.这使得以后很难从版本控制差异中看到实际更改的内容 - 您只看到文件名和行号的无数更改.像那样:

- #: somefile.js:43
- #: somefile.js:45
- #: somefile.js:118
+ #: somefile.js:203
+ #: somefile.js:215
  msgid "Translate me please"
  msgstr "Tõlgi mind palun"

- #: somefile.js:23
- #: somefile.js:135
+ #: otherfile.js:23
+ #: otherfile.js:135
  msgid "Note"
  msgstr "Märkus"

- #: andThatFile.js:18
  #: orThisFile.js:131
- msgid "Before I was like this"
- msgstr "Selline olin ma enne"
+ msgid "I happen to be changed"
+ msgstr "Paistab, et mind muudeti"
Run Code Online (Sandbox Code Playgroud)

当然,一个简单的解决方法是在xgettext输出中禁用filename/linenumber注释的生成.但实际上我发现这些文件名在翻译时非常有用.

我当然不可能是唯一一个不喜欢他的PO文件的差异的人.建议?

git version-control diff gettext po-file

35
推荐指数
4
解决办法
4001
查看次数

如何获取Web浏览器密码存储以记住R/Shiny密码?

问题

我有一个闪亮的应用程序,需要用户登录才能访问底层数据集.

用户名和密码从表单字段中收集,并通过另一台服务器上的RESTful API提交,以获取将来请求中使用的访问令牌.我没有在这个例子中包含这些细节.

在此输入图像描述

我想让网络浏览器记住登录详细信息并自动登录,但不太清楚如何.

我尝试了什么

在我的第一个实现中,将the <input type="text" name="username"><input type="password" name="password">plus actionButton添加到页面中.这使得用户每次重新启动闪亮的应用程序时都会重新登录,这对于开发来说很复杂并且对用户来说是不愉快的.

然后我找到了https://gist.github.com/kostiklv/968927,其中详细说明了让Web浏览器记住密码并登录的条件.

闪亮的工作在一个页面上,所以我没有一个单独的登录页面(这会产生一个新的闪亮会话,丢弃登录!).

我尝试了各种各样的组合,这里是我最接近的.此脚本正确填写过去的密码,但用户仍然必须手动点击提交.

示例代码

请注意,我有一个自定义黑客我的闪亮,以使得type="password"能够被对待type="text".有关访问此代码的信息,请参阅问题的底部

保存此代码,login.R然后运行R并键入source("login.R")

write("","blank.html")
require(shiny)
addResourcePath("login",tools:::file_path_as_absolute("./"))
runApp(list(
  ui=bootstrapPage(
    tags$form(action="#",target="loginframe",
      tags$input(id="username",type="text",placeholder="Username"),
      tags$input(id="password",type="password",placeholder="Password"),
      tags$input(id="loginButton",class="btn btn-primary",type="submit",value="Login")
    ),
    tags$iframe(name="loginframe",src="login/blank.html",style="display:none")
  ),
  server=function(input, output) {
    observe({message(
        "username ",input$username,"\n",
        "password ",input$password,"\n"
    )})
  })
)
Run Code Online (Sandbox Code Playgroud)

分析发生了什么

请注意,html的存在input submit button似乎表明它应该只在每次提交时更新输入.如果没有提交按钮,则每次击键都会更新其输入.

闪亮的也是如此submitButton.

离开表单但删除按钮允许输入$ username并输入$ password来访问服务器代码,但是......

为了启用传统的用户登录和自动登录,我需要按钮以避免重复尝试对部分用户名和密码进行身份验证(这可能会导致问题).

记录发生的事情

以下是测试中的控制台日志

使用提交按钮记录:

username 
password 
<enter username AA and …
Run Code Online (Sandbox Code Playgroud)

authentication r shiny

35
推荐指数
2
解决办法
3663
查看次数

R中的For-loop vs while循环

我在R中工作的时候注意到了一个奇怪的事情.当我有一个简单的程序来计算从1到N的平方时使用for-loop和while循环实现的行为是不一样的.(在这种情况下我不关心矢量化或应用函数).

fn1 <- function (N) 
{
    for(i in 1:N) {
        y <- i*i
    }
}
Run Code Online (Sandbox Code Playgroud)

fn2 <- function (N) 
{
    i=1
    while(i <= N) {
        y <- i*i
        i <- i + 1
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是:

system.time(fn1(60000))
   user  system elapsed 
  2.500   0.012   2.493 
There were 50 or more warnings (use warnings() to see the first 50)
Warning messages:
1: In i * i : NAs produced by integer overflow
.
.
.

system.time(fn2(60000))
   user  system elapsed 
  0.138   0.000   0.137 …
Run Code Online (Sandbox Code Playgroud)

floating-point for-loop r while-loop

25
推荐指数
1
解决办法
16万
查看次数

ggplot2:连接分组数据的方法

我试图将我的数据的一个变量分组,然后通过平均值绘制一条线.当两个变量都是数字时,它工作正常.但是,当分组变量是一个因素时,我遇到了问题.我在下面有一个模拟.

x <- sample(1:3, 40, replace=T)
y <- rnorm(40)

df1 <- data.frame(x, y)
qplot(x, y, data=df1) + stat_summary(fun.y=mean, colour="red", geom="line")
Run Code Online (Sandbox Code Playgroud)

替代文字

这看起来很棒.但是如果x变量是一个因素,我就不会得到这条线.

df2 <- data.frame(x=as.factor(x), y)
qplot(x, y, data=df2) + stat_summary(fun.y=mean, colour="red", geom="line")
Run Code Online (Sandbox Code Playgroud)

替代文字

我能做些什么才能显示这一行?

PS.geom ="point"有效但不是geom ="line"

qplot(x, y, data=df2) + stat_summary(fun.y=mean, colour="red", geom="point")
Run Code Online (Sandbox Code Playgroud)

替代文字

谢谢阅读!!

r ggplot2

23
推荐指数
1
解决办法
2万
查看次数

这应该是不明确的吗?(隐式演员表)

 struct A 
 {
     A(const A& src);
     A(const char* src);
 };
 struct B 
 {
     operator A();
     operator char*();
 };
 void test()  
 {
     B v;
     A s(v);
 }
Run Code Online (Sandbox Code Playgroud)

EDG/Comeau和MSVC允许代码,而GCC 4.4.4,CLANG和BCC拒绝它是不明确的.

一位C++委员会成员回答了这个问题(最初):

这不是模棱两可的; A(const A&)构造函数优于A(const char*)构造函数.const A&参数直接绑定到转换函数的结果,因此转换序列被认为是用户定义的转换,后跟身份转换(13.3.3.1.4p1).const char*参数是用户定义的转换,后跟资格转换,所以情况更糟.

然后,他跟进了这个.

实际上,我错了.虽然用户定义的转换序列中的第二个转换序列确实是一个决胜局,但仔细观察13.3.3.2p3,倒数第二个子弹,揭示了这个决胜局只适用于两个序列包含相同的情况用户定义的转换序列,在本例中不是这种情况.因为一个构造函数的转换序列使用B ::运算符A()而另一个使用b ::运算符char*(),所以在两个用户定义的转换序列之间没有仲裁器,并且它们是不明确的.

我的问题是这个.

13.3.3.2 p3表明,

除非以下规则之一适用,否则相同形式的两个隐式转换序列是不可区分的转换序列.

根据我的理解,关键字是"以下规则之一".这并不意味着说明"相同转换序列"的子弹会覆盖上述所有转发序列.我会认为"S1的等级优于S2的等级"会适用吗?

c++ standards casting

23
推荐指数
1
解决办法
483
查看次数

Bash引用了数组扩展

当我写一个bash程序时,我通常构造如下调用:

declare -a mycmd=( command.ext "arg1 with space" arg2 thing etc )

"${mycmd[@]}" || echo "Failed: foo"
Run Code Online (Sandbox Code Playgroud)

die foo打印Error foo和退出的bash函数在哪里.

但是,如果我想清楚错误原因,我想打印失败的命令:

"${mycmd[@]}" || echo "Failed: foo: ${mycmd[*]}"
Run Code Online (Sandbox Code Playgroud)

因此用户可以运行dead命令并找出原因.但是,在此过程中引用丢失 - 具有空格或转义字符的失败消息参数不会以可以剪切和粘贴的方式打印.

有没有人建议采用紧凑的方法来解决这个问题?


我认为问题是bash处理命令的参数解析的方式,以及echo(内置)echo处理参数的方式.说明问题的另一种方法是:

如何在以下bash示例中打印带空格的参数的引号(必须作为脚本运行,而不是以立即模式运行):

#!/bin/bash
mkdir qatest; cd qatest
declare -a myargs=(1 2 "3 4")
touch "${myargs[@]}"
ls
echo "${myargs[@]}"
Run Code Online (Sandbox Code Playgroud)

实际结果:

1  2  3 4
1 2 3 4
Run Code Online (Sandbox Code Playgroud)

期望的结果

1  2  3 4
1 2 "3 4"
Run Code Online (Sandbox Code Playgroud)

要么

1  2  3 4
"1" …
Run Code Online (Sandbox Code Playgroud)

arrays bash quotes

21
推荐指数
2
解决办法
2万
查看次数