问题列表 - 第47533页

查找特定值的列索引

我有脑痉挛.以下是玩具数据集:

df <- data.frame(
        id = 1:6, 
        v1 = c("a", "a", "c", NA, "g", "h"),
        v2 = c("z", "y", "a", NA, "a", "g"),
        stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud)

我有一个特定的值,我希望在一组定义的列中找到它,我想确定它所在的位置.我正在搜索的字段是字符,诀窍是我正在寻找的值可能不存在.此外,数据集中还存在空字符串.

假设我知道如何做,变量位置表示我想要返回的值.

> df
  id   v1   v2 position
1  1    a    z        1
2  2    a    y        1
3  3    c    a        2
4  4 <NA> <NA>       99
5  5    g    a        2
6  6    h    g       99
Run Code Online (Sandbox Code Playgroud)

一般规则是我想找到值"a"的位置,如果它没有找到或者如果缺少v1,那么我想要99返回.

在这个例子中,我正在搜索v1和v2,但实际上,我有10个不同的变量.值得注意的是,我搜索的值只能在10个变量中存在一次.

生成此重新编码的最佳方法是什么?

提前谢谢了.

string r

4
推荐指数
1
解决办法
5042
查看次数

我可以得到除字面零以外的所有比较的-Wfloat-equal的行为吗?

我想在构建选项中启用-Wfloat-equal(这是一个GCC标志,当通过==或!=运算符比较两个浮点数时会发出警告)。但是,在我使用的库的几个头文件中,以及我自己的代码的很大一部分中,我经常想使用float或double的非零值进行分支,使用if (x)if (x != 0)或它们的变体。

由于在这些情况下,我绝对可以确定该值完全为零-检查的值是显式零初始化的结果calloc,等等。-我看不出使用此比较的不利之处,而是成本更高且可读性更差调用我的near(x, 0)函数。

是否有某种方法可以-Wfloat-equal对所有其他种类的浮点相等比较产生影响,但允许这些传递不加标记?库头文件中有足够多的实例,它们可以严重污染我的警告输出。

gcc compiler-warnings

5
推荐指数
1
解决办法
1719
查看次数

MSbuild复制整个文件夹

试图复制整个文件夹,但是当我这样做时:

<Copy SourceFiles="$(TargetDir)\*.*" DestinationFolder="$(BuildOutput)\SomeDir" />
Run Code Online (Sandbox Code Playgroud)

副本尝试执行此操作:复制c:\ source\*.*c:\ destination\SomeDir\*.* 并失败并显示"非法字符"

.net msbuild visual-studio

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

用NaN对双打数组进行排序

这更像是一个"你能解释这个"类型的问题,而不是其他任何问题.

我在工作中遇到了一个问题,我们在表中使用NaN值,但是当表被排序时,它以一种非常奇怪,奇怪的方式出现.我认为NaN正在捣乱,所以我写了一个测试应用程序来判断这是否属实.这就是我做的.

static void Main(string[] args)
{
    double[] someArray = { 4.0, 2.0, double.NaN, 1.0, 5.0, 3.0, double.NaN, 10.0, 9.0, 8.0 };

    foreach (double db in someArray)
    {
        Console.WriteLine(db);
    }

    Array.Sort(someArray);
    Console.WriteLine("\n\n");
    foreach (double db in someArray)
    {
        Console.WriteLine(db);
    }

    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

之前:

4,2,NaN,1,5,3,NaN,10,9,8
Run Code Online (Sandbox Code Playgroud)

后:

1,4,NaN,2,3,5,8,9,10,NaN
Run Code Online (Sandbox Code Playgroud)

所以是的,NaN有些如何使排序的数组以奇怪的方式排序.

引用弗莱; "为什么这些东西?"

c# sorting nan .net-3.5

14
推荐指数
2
解决办法
3073
查看次数

asp.net上的MEF可以用于依赖注入吗?

我知道理论上依赖注入是什么,但我还没有在我的任何项目中实际使用过依赖注入.所以请考虑我成为DI菜鸟.

直截了当的问题是; MEF可以用于依赖注入吗?

如果可以,我的后续问题是; 使用MEF进行依赖注入是一个好主意吗?

我理解我的跟进问题可能被视为主观问题.但是,我正在寻找支持和反对的最佳做法和理由.所以,我希望我的跟进问题不会出现太多的问题.

所有这些的背景是我觉得有点迷失试图弄清楚如何为asp.net mvc制作一个插件框架.

c# asp.net-mvc dependency-injection mef

6
推荐指数
1
解决办法
835
查看次数

C++中的<<和>>

我不太明白这意味着什么......我只是从我非常非常基本的Python体验中学习C++ ......所以这可能是一个非常愚蠢的问题.我的问题是......说你有经典的"Hello World"计划,你就有了这条线:

cout<<"Hello World!"<<endl;
Run Code Online (Sandbox Code Playgroud)

<< mean ...是什么...因为我只是在C中使用输入,看到你做了类似的事情:

int i;
cin>>i;
Run Code Online (Sandbox Code Playgroud)

而且我注意到它有>>而不是<<而且我已经读到那些是按位的变化......我并不完全明白那些是什么......但我认为这可能会有所不同......帮助...提前致谢

c++

3
推荐指数
1
解决办法
894
查看次数

找出ListView是否滚动到底部?

我可以看看我的ListView是否滚动到底部?我的意思是最后一项是完全可见的.

android listview

102
推荐指数
5
解决办法
8万
查看次数

删除其主键最接近X的行

我试图删除一行,其主键(列名=版本)例如是4.002000000000001.所以我说声明:

DELETE FROM tbl WHERE version=4.002;
Run Code Online (Sandbox Code Playgroud)

现在,这不会工作,因为没有版本等于4.002的行,只有版本等于4.002000000000001的行. 请不要问为什么我不将版本存储为DB中的4.002,因为我试图通过使列类型为DECIMAL(5,3)来实现,但它仍然存储来自Java的双精度为4.002000000000001.请不要问为什么我不说"...... WHERE version = 4.002000000000001;" 因为当我使用JDBC创建语句时,我无法控制java格式如何加倍(甚至使用DecimalFormat类).

那么有没有办法在SQLite3中向下舍入(floor函数)?那么我可以说"删除其FLOOR(版本)等于4.002的行?

我是一名C++程序员(使用Java查询SQL数据库,请不要问为什么:P)谁不熟悉复杂的SQL查询,所以这对我想做的事情是正确的:

DELETE FROM tbl WHERE ROUND(version, 0.5)=4.002;
Run Code Online (Sandbox Code Playgroud)

java sql sqlite jdbc

0
推荐指数
1
解决办法
317
查看次数

C++迭代器流水线设计

假设我们要应用一系列的变换,int f1(int),int f2(int),int f3(int),对对象的列表.一种天真的方式

SourceContainer source;

TempContainer1 temp1;
transform(source.begin(), source.end(), back_inserter(temp1), f1);
TempContainer2 temp2;
transform(temp1.begin(), temp1.end(), back_inserter(temp2), f2);

TargetContainer target;
transform(temp2.begin(), temp2.end(), back_inserter(target), f3);
Run Code Online (Sandbox Code Playgroud)

第一个解决方案是因为有多余的空间要求不是最优的temp1temp2.所以,让我们更聪明一点:

int f123(int n) { return f3(f2(f1(n))); }
...
SourceContainer source;
TargetContainer target;
transform(source.begin(), source.end(), back_inserter(target), f123);
Run Code Online (Sandbox Code Playgroud)

第二个解决方案是要好得多,因为不仅是代码简单,但更重要的是有没有中间的计算空间需求少.

但是,组合f123必须在编译时确定,因此在运行时固定.

如果要在运行时确定合成,我将如何有效地尝试这样做?例如,如果这个码是在一个RPC服务和实际组成-其可以是任何的子集的任何置换f1,f2f3--is基于来自RPC调用的参数.

c++ design-patterns pipeline

13
推荐指数
1
解决办法
1032
查看次数

如何加快Intellij中Android项目的构建速度?

我有一个Android项目.在eclipse中,如果我更换一行并在手机上重新运行应用程序,则周转时间非常快.在Intellij上,它完全重新编译了我的项目并花了半分钟.这可以以任何方式加速吗?这是一个错误还是我错误配置了什么?

android intellij-idea

5
推荐指数
1
解决办法
1121
查看次数