我的情况是我的数据框包含图像分析的结果,其中列是图像中存在的特定类的比例,因此示例数据框class_df看起来像:
id A B C D E F
1 0.20 0.30 0.10 0.15 0.25 0.00
2 0.05 0.10 0.05 0.30 0.10 0.40
3 0.10 0.10 0.10 0.20 0.20 0.30
Run Code Online (Sandbox Code Playgroud)
这些类中的每一个属于一个功能组,我想创建新的列,其中每个功能组的比例是从类计算的.示例映射class_fg
class fg
A Z
B Z
C Z
D Y
E Y
F X
Run Code Online (Sandbox Code Playgroud)
并且所需的结果将是(添加行以显示所需的新列):
id A B C D E F | X Y Z
1 0.20 0.30 0.10 0.15 0.25 0.00 | 0.00 0.40 0.60
2 0.05 0.10 0.05 0.30 0.10 0.40 | 0.40 0.40 …Run Code Online (Sandbox Code Playgroud) 这是教程分配的一小部分,我们被要求首先使用列表推导定义函数,然后使用显式递归.
- 使用列表推导,定义一个函数
duplicated :: Eq a => a - > [a] - > Bool
获取列表元素和列表,如果列表中有多个列表元素副本,则返回True.例如:
重复10 [1,2,11,11] =假
重复10 [1,2,10,11] =假
重复10 [1,2,10,10] =真
为此,我有以下代码:
duplicated::Eq a => a -> [a] -> Bool
duplicated n xs = length[x | x <- xs, x == n] > 1
Run Code Online (Sandbox Code Playgroud)
但无论我如何攻击这个,我都无法通过显式递归找到一种方法.
所以,为了准备即将到来的考试,我一直在考试一些旧考试,并遇到了这个问题:
编写Haskell代码以定义ints :: [Int]以下形式的无限列表:
[0, 1, -1, 2, -2, 3, -3, 4, -4..]
过去半个小时我一直在插电,但似乎无法找到任何解决方案,或者那样做我想做的事情.我觉得我真正想要的是对表单的列表理解
ints :: [Int]
ints = [0] ++ [x (-x) | x <- [1..]]
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我不确定如何让它工作