我有一个表格,其中字符串格式的元素数量不等
File1 A B C
File2 A B D
File3 E F
Run Code Online (Sandbox Code Playgroud)
我想转换成如下格式
A B C D E F
File1 1 1 1 0 0 0
FIle2 1 1 0 1 0 0
File3 0 0 0 0 1 1
Run Code Online (Sandbox Code Playgroud)
我尝试使用 reshape2 来做到这一点,但没有成功。
样本数据:
mydata <- structure(list(V1 = c("File1", "File2", "File3"),
V2 = c("A", "A", "E"), V3 = c("B", "B", "F"),
V4 = c("C", "D", "")),
.Names = c("V1", "V2", "V3", "V4"),
class = "data.frame", row.names = c(NA, -3L))
Run Code Online (Sandbox Code Playgroud) 我在Perl中编写了以下代码.代码正在读取pdb文件并获取一些值.忽略代码的顶部,一切都在完美.问题出现在子例程部分,我尝试将数组存储在hash3中,模型作为键,另一个键位置可以使用以下方法在if条件内访问数组值:
$ hash3 {$模型} {$坐标} [1].
但是当我走出所有foreach循环并尝试访问元素时,我只获得一个值.请查看结束foreach循环并告诉我访问哈希值是否错误.
我正在使用的pdb文件可以从这个链接下载http://www.rcsb.org/pdb/download/downloadFile.do?fileFormat=pdb&compression=NO&structureId=1NZS
#!/usr/bin/perl
open(IN,$ARGV[0]);
my @phosphosites;
my $model=1;
my %hash3;
while(<IN>)
{
#findmod(@line);
#finddist;
#findfreq;
if((/^MODRES/) && (/PHOSPHO/))
{
@line=split;
push(@phosphosites, $line[2]);
#print "$line[4]";
}
foreach $elements (@phosphosites){
if(/^HETATM\s+\d+\s+CA\s+$i/)
{
@line1=split;
#print "$line1[5]";
#print "$line1[6] $line1[7] $line1[8]\n";
push(@phosphositesnum, $line1[5]);
}
}
$pos=$line1[5];
#findspatial(\@line,\@line1);
}
my @ori_data=removeDuplicates(@phosphositesnum);
sub removeDuplicates {
my %seen = ();
my @vals = ();
foreach my $i (@_) {
unless ($seen{$i}) {
push @vals, $i;
$seen{$i} = 1;
}
} …Run Code Online (Sandbox Code Playgroud) 如何将最终的页面设为默认选项卡.我正在使用jQuery UI来显示这些选项卡.
<div id="tabs">
<li class="ui-state-default ui-corner-top"><a href="#home">Home</a></li>
<li class="ui-state-default ui-corner-top"><a href="#strains">Strains</a></li>
<li class="ui-state-default ui-corner-top"><a href="#GB"> Browser</a></li>
<li class="ui-state-default ui-corner-top"><a href="#pathway">Pathway</a></li>
<li id="pathway1" class="ui-state-default ui-corner-top"><a href="#pathway1">pathway1</a></li>
<li class="ui-state-default ui-corner-top"><a href="#About">About</a></li>
Run Code Online (Sandbox Code Playgroud)
据我所知,似乎必须按照以下方式完成.
$('#tabs1').addClass('active')
Run Code Online (Sandbox Code Playgroud)
但它没有用.我有跟随jQuery.
$( "#tabs" ).tabs();
$( "#pathway1").addClass('active');
Run Code Online (Sandbox Code Playgroud)
我希望默认情况下使path1页面处于活动状态.
我必须组合两个看起来像这样的数据帧我想在数据帧中采用公共列并将它们连接在一起.两个数据帧中的行将完全不同.
a b c
row1 1 0 1
row2 1 0 1
Run Code Online (Sandbox Code Playgroud)
另一个数据帧
d a c f
row3 1 0 1 1
row4 1 1 0 0
Run Code Online (Sandbox Code Playgroud)
我希望最终的数据集看起来像这样
a c
row1 1 1
row2 1 1
row3 0 1
row4 1 0
Run Code Online (Sandbox Code Playgroud)
这是来自两个数据帧的输入
dput(x1)
structure(list(d = c(1L, 1L), a = 0:1, c = c(1L, 0L), f = c(1L,
0L)), .Names = c("d", "a", "c", "f"), row.names = c("row3", "row4"
), class = "data.frame")
dput(x2)
structure(list(a = c(1L, 1L), b = …Run Code Online (Sandbox Code Playgroud) 我有一个大小为139 X 143896的矩阵.
我必须从中删除6000列.
目前我正在使用for循环来做它并且它真的很慢.
有没有更快的方法来做到这一点?
for i=1:length(ind)
%ind are the indices of the columns to be removed
col1=ind(i);
mat(:,col1)=[];
end
Run Code Online (Sandbox Code Playgroud)
非常欢迎任何帮助.