$ which file
/usr/bin/file
$ file /usr/bin/file
/usr/bin/file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?
$ which file | file
Usage: file [-bcikLhnNrsvz0] [-e test] [-f namefile] [-F separator] [-m magicfiles] file...
file -C -m magicfiles
Run Code Online (Sandbox Code Playgroud)
尝试file --help获取更多信息.
对于一组诊断代码,我有一个超过2个月的急诊科访问的大矩阵"dt".列是"年龄","性别","日期","县","拉链","主观","位置","诊断"和"dt"; 尺寸为872344×9.
我想从这个矩阵中进行子集化,并创建一个新的矩阵,其中只包含"diag"列的数字介于800和849(所有列)之间的那些行.
我一直在搞乱构建一个循环并使用"which"或"if.else",但我遇到了一个心理障碍.看起来如果它只是一个我想要提取的诊断代码会更容易,但50个代码的系列使事情变得复杂......指向一个循环?有没有人有基于找到某些值的子集的想法?
这是我的开始(它不起作用):
dta = dt
b = 800:849
for (i in 1:length(b)) {
}
Run Code Online (Sandbox Code Playgroud) 所以我有一个文本块,我已经分成了一个向量,从每行向量我进一步将它分成一个数据帧.在一个完美的世界中,DF的每一行都是完全相同的,但它并不存在,并且其中有许多行具有NA值.我需要做的是从数据框中选择具有最少NA值的行.
所以说DF看起来像这样:
姓名年份NA地址NA州
名称年份ID地址城市州名别
年份NA NA城市州名
NA NA NA NA NA
姓名年份NA NA NA NA NA
它们各自属于列.所以我需要一种方法来识别哪个行的NA数最少,然后选择该行的元素.所以最终我希望返回只是读取的单行DF(或优选的矢量)
姓名年份ID地址城市州级
在这种情况下,第2行.
我知道:
max(rowSums(!is.na(x)))
将返回具有最多数量的非na值的行#,但我似乎无法弄清楚如何抓取该行的元素.我在想使用哪个()会起作用,但我似乎无法弄明白.
谢谢你的帮助!
大卫
我总是使用这样的命令:
which(foo$bar == 'A' | foo$bar == 'B' | foo$bar == 'C')
Run Code Online (Sandbox Code Playgroud)
由于它们都与同一个变量相关,我希望能够清理我的代码并执行以下操作:
which(foo$bar == 'A|B|C') # such syntax works in grep, why not here?
# or...
which(foo$bar == c('A', 'B', 'C'))
Run Code Online (Sandbox Code Playgroud)
但这一切都不起作用!我很确定必须有一个简单的解决方案,我找不到它.我在ifelse()功能方面遇到同样的问题,因此通用解决方案的额外吹嘘权利.
我有一个data.frame包含Time作为第一列,然后每个后续列是单个细胞的转录因子浓度,例如:
Time = c(0.1,0.2,0.3,0.4,0.5)
Cell1 = c(1,5,10,4,2)
Cell2 = c(1,5,4,11,5)
Cell3 = c(1,9,5,9,5)
df = data.frame(Time,Cell1,Cell2,Cell3)
Run Code Online (Sandbox Code Playgroud)
得到:
Time Cell1 Cell2 Cell3
1 0.1 1 1 1
2 0.2 5 5 9
3 0.3 10 4 5
4 0.4 4 11 9
5 0.5 2 5 5
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试提取每个细胞具有最大转录因子浓度的时间,以输出如下内容:
Cell1 0.3
Cell2 0.4
Cell3 0.2,0.4
Run Code Online (Sandbox Code Playgroud)
如果这是简单的道歉,我是R的新手,并且已经在论坛上找到答案了一段时间了.我可以通过单独查询每个列来完成它,但是我有数百个单元格,并且必须使用我当前的方法为每个列编写脚本:
cell1_peak=which(df[2]==max(df[2]));cell1_time=df$Time[cell1_peak]
Run Code Online (Sandbox Code Playgroud)
使用我当前方法的apply函数和编译所有单元格以便于导出的可能方法?
好吧,我有一个小问题,我相信我可以解决which和grepl(替代品的欢迎),但我迷路:
my_query<- c('g1', 'g2', 'g3')
my_data<- c('string2','string4','string5','string6')
Run Code Online (Sandbox Code Playgroud)
我想在my_query匹配中返回索引my_data.在上面的示例中,只有'g2' mydata,因此示例中的结果将是2.请帮忙 :)
/ R-福利局.我的which.min调用在我的数据帧的列上工作正常,但在加载dplyr which.min不再有效.是因为df现在是一个tibble?任何解决方法?
> which.min(Analytic_traces_raw[,1]) #********************WORKS FINE HERE**
[1] 1
> library(dplyr)
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
> which.min(Analytic_traces_raw[,1]) #*********************NOW IT'S BROKEN**
Error in which.min(Analytic_traces_raw[, 1]) :
(list) object cannot be coerced to type 'double'
> head(Analytic_traces_raw[,1]) #**TYPE IS DBL, BUT TIBBLE TROUBLE**?
# A tibble: 6 x 1
`t_Pur23Mar18_TP7-24`
<dbl>
1 0.000417
2 0.00375
3 0.00708
4 0.0104
5 0.0138
6 …Run Code Online (Sandbox Code Playgroud) 关于.trigger()方法,Event对象,which属性,JS字符代码和下面的代码,为什么#example输入不会将char a作为自动写入值?我误解了这个.trigger()方法吗?
<input type="text" name="example" id="example" value="" />
<script>
$(function() {
var e = jQuery.Event("keydown", { which: 65 });
$("#example").focus().trigger(e);
});
</script>
Run Code Online (Sandbox Code Playgroud) 使用R.
比方说,你有一个矩阵,如下面的矩阵.
> C<-matrix(c(0,-7,2,8,0,0,3,7,0,3,0,3,0,0,0,0),nrow=4,byrow=TRUE)
> C
[,1] [,2] [,3] [,4]
[1,] 0 -7 2 8
[2,] 0 0 3 7
[3,] 0 3 0 3
[4,] 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
如何找到某一行中最小元素的列号.例如,我想知道第1行中最小元素的列号是什么.因此输出应该只是2.因为第1行中的最小元素是-7而且是第2列.我假设答案非常简单,但我似乎无法做到这一点!我尝试了以下操作,但它只给了我5的答案.
> inds = which(C == min(C[1,]))
> inds
[1] 5
Run Code Online (Sandbox Code Playgroud)
有人也可以告诉我这个特殊情况下的5个意思吗?
谢谢
我在我的代码的一个实例中获得了以下查询的'integer(0)'结果,但是它运行正常:
data.dat文件:
xx,线性,平方,高斯,rando,水果,颜色,类型,xxx,yyy
1,1,1,1,1.1,苹果,蓝色,金色,1,1
2,3,4,1,2.5,苹果,红,金,2,1
3,2,9,2,4.4,橙色,蓝色,银色,1,1
4,4,16,3,5.9,橙色,蓝色,金色,1,1
5,5,25,5,5.5,桃,蓝,金,1,1
6,6,32,12,6.9,桃,蓝,金,1,2
7,7,48,24,7.2,苹果,蓝色,银色,1,1
8,9,66,30,7.4,苹果,蓝色,金色,1,2
9,8,84,31,7.6,梨,红,金,1,1
10,10,102,30,1.5,橙色,红色,金色,1,1
data2 <- read.csv(file="data.dat",head=TRUE,sep=",");
which(data2$color=="red" , arr.ind=TRUE)
Run Code Online (Sandbox Code Playgroud)
这也不起作用:
which(as.character(data2$color)=="red" , arr.ind=TRUE)
Run Code Online (Sandbox Code Playgroud)
我觉得我正在失去理智,我已经使用了这个功能数百次没有问题......