小编Los*_*Lin的帖子

switch()语句用法

我对R中的switch语句有点困惑.只需在googling函数中我得到一个例子,如下所示:

switch的一个常见用途是根据函数的一个参数的字符值进行分支.

 > centre <- function(x, type) {
 + switch(type,
 +        mean = mean(x),
 +        median = median(x),
 +        trimmed = mean(x, trim = .1))
 + }
 > x <- rcauchy(10)
 > centre(x, "mean")
 [1] 0.8760325
 > centre(x, "median")
 [1] 0.5360891
 > centre(x, "trimmed")
 [1] 0.6086504
Run Code Online (Sandbox Code Playgroud)

然而,这似乎只是if为每个指定了一堆语句type

这就是全部switch()吗?有人可以给我更多的例子和更好的应用吗?

r switch-statement

104
推荐指数
1
解决办法
15万
查看次数

如何附加到空列表的末尾?

我有一个清单:

list1=[]
Run Code Online (Sandbox Code Playgroud)

列表的长度是未确定的,所以我试图将对象附加到list1的末尾,如下所示:

for i in range(0, n):

    list1=list1.append([i])
Run Code Online (Sandbox Code Playgroud)

但是我的输出一直给出这个错误:AttributeError:'NoneType'对象没有属性'append'

这是因为list1作为空列表开始吗?我该如何解决这个错误?

python

65
推荐指数
3
解决办法
19万
查看次数

如何生成具有指定增量步骤的列表?

如何生成具有指定增量步长的向量(例如2)?例如,我如何生成以下内容

0  2  4  6  8  10
Run Code Online (Sandbox Code Playgroud)

r seq

43
推荐指数
3
解决办法
12万
查看次数

如何停止for循环

我正在编写一个代码来确定我的nxn列表中的每个元素是否相同.即[[0,0],[0,0]]返回true但[[0,1],[0,0]]将返回false.我正在考虑编写一个代码,当它找到一个与第一个元素不同的元素时立即停止.即:

n=L[0][0]
m=len(A)
for i in range(m):
 for j in range(m):
   if
    L[i][j]==n: -continue the loop-
   else: -stop the loop-
Run Code Online (Sandbox Code Playgroud)

如果L[i][j]!==n 返回false,我想停止这个循环.否则返回true.我将如何实现这一目标?

python

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

R自我参考

在RI中发现自己做了很多这样的事情:

adataframe[adataframe$col==something]<-adataframe[adataframe$col==something)]+1

这种方式有点冗长乏味.有没有办法让我
引用我想要改变的对象,比如

adataframe[adataframe$col==something]<-$self+1 
Run Code Online (Sandbox Code Playgroud)

r dataframe self-reference

37
推荐指数
4
解决办法
2803
查看次数

如何不将数字显示为指数?

我看到很多关于如何更改R中的小数精度的文章.但是有没有办法让R显示整数而不是显示类似的东西9e+08

r

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

从两个向量创建元组

如果我具有相同的长度的两个向量A<-c(5,10)B<-c(7,13)如何可以很容易地将这些两个向量成单个元组向量即c((5,7),(7,13))

r

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

避免参数重复通过(...)

我有一个功能

somefun <- function(someparameters , ...) { plot(stuff, ...)}
Run Code Online (Sandbox Code Playgroud)

现在我想在用户没有指定这些参数的情况下为绘图提供一些默认值.(即xlab="").

如何提供一组默认的绘图选项,但仍允许用户覆盖这些参数?因为如果两次输入相同的参数,R将抛出错误:由多个实际参数匹配的形式参数.

我知道我可以通过我的功能传递所有这些选项

somefun <- function(someparameters, main, xlab, ylab, xlim....)
Run Code Online (Sandbox Code Playgroud)

但我宁愿不这样做.

是否有一些简单的解决方案来实现这一目标?

r

15
推荐指数
1
解决办法
1427
查看次数

拆分和连接字符串

我想知道python是否有类似的内置函数

string->list
Run Code Online (Sandbox Code Playgroud)

list->string在计划中.

因此,例如,我想['a','b','c']使用内置函数将'abc'转换为反之,反之亦然.

python string split append

8
推荐指数
1
解决办法
4411
查看次数

搜索算法及其复杂性

我在接受采访时被问到这个问题:假设一个无限的整数数组被排序.你会如何在这个数组中搜索整数?什么是时间复杂性?我猜测访问者的意思是无限的是我们不知道'n'的值,其中n是数组中最大数字的索引.我给出了以下答案:

SEARCHINF(A,i,x){ // Assume we are searching for x
if (A(1) > x){
   return
}
if(A(i) == x){
   return i;
}
else{
    low = i;
    high = power(2,i);
    if (A(i)>x){
       BINARY-SEARCH(A,low,high);
    }
    else{
        SEARCHINF(A,high,x);
    }
}// end else
}// end SEARCHINF method
Run Code Online (Sandbox Code Playgroud)

在最坏的情况下,当排序的数字从1开始,随后的数字结束时,这将在(log x + 1)时间内找到界限(低和高).然后二进制搜索需要:

O( log {2^(ceil(log x)) - 2^(floor(log x))} )
Run Code Online (Sandbox Code Playgroud)

它是否正确?如果正确,可以优化吗?

sorting algorithm search time-complexity

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