R版本2.11.1在Windows 7上为32位
现在我得到代码: lapply(x, rank)
但我希望"等级"为: ties.method="first"
我编写了一个程序,它读取包含多维数据的文件(最常见的是 3D,但也可能出现 2D)。为了提高简单性,我想将数据存储在相同等级的数组中(或假装是一个等级的数组),即使用三维数组来存储 3D 数据等;问题是程序只能在读取数据文件时了解维数。
目前,我将所有数据存储在排名一的数组中,并根据元素的坐标计算该数组中每个元素的索引(此处也建议这样做)。然而,我也读过有关指针等级重新映射的内容,这看起来非常优雅,而且正是我一直在寻找的,因为它允许我放弃数组索引确定的过程(这可能比后面的过程效率低得多)场景)。然而,现在看来我面临着与直接声明多维数组相同的问题 - 如何进行声明?同样,它需要有关排名的信息。
我如何使用指针等级重新映射或其他一些更合适的技术来在运行时设置数组的等级 - 如果这可以完成。或者我最好坚持使用我当前使用的排名一数组?
我正在为Carcassonne创建一个分数跟踪应用程序.我想获得每场比赛的冠军.
我已经在MS-SQL中工作,现在我正在尝试将db转换为SQLite.
架构
http://sqlfiddle.com/#!7/e8340
MS-SQL
CREATE VIEW vTopScorePerGame AS
WITH ranked AS (
SELECT RANK() OVER (PARTITION BY [GameID] ORDER BY TotalScore DESC) AS Position,
PlayerID,
PlayerName,
TotalScore,
[GameID]
FROM vScore
)
SELECT [GameID],
PlayerID,
PlayerName AS Winner,
TotalScore
FROM ranked
WHERE ranked.Position = 1
Run Code Online (Sandbox Code Playgroud)
当我在SQLFiddle或SQLiteBrowser中尝试时,我收到以下错误:
near "(": syntax error:
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?
功能
与
https://www.sqlite.org/lang_with.html
COALESCE
https://www.sqlite.org/lang_corefunc.html
不受支持的
http://www2.sqlite.org/cvstrac/wiki?p=UnsupportedSqlAnalyticalFunctions
我正在寻找一种对数据框保留关系列进行排序的方法。专门针对此示例,我有一个pyspark数据框,如下所示,我想为colA和colB生成排名(尽管我希望支持能够对N个列进行排名)
+--------+----------+-----+----+
| Entity| id| colA|colB|
+-------------------+-----+----+
| a|8589934652| 21| 50|
| b| 112| 9| 23|
| c|8589934629| 9| 23|
| d|8589934702| 8| 21|
| e| 20| 2| 21|
| f|8589934657| 2| 5|
| g|8589934601| 1| 5|
| h|8589934653| 1| 4|
| i|8589934620| 0| 4|
| j|8589934643| 0| 3|
| k|8589934618| 0| 3|
| l|8589934602| 0| 2|
| m|8589934664| 0| 2|
| n| 25| 0| 1|
| o| 67| 0| 1|
| p|8589934642| 0| 1|
| q|8589934709| 0| 1|
| …Run Code Online (Sandbox Code Playgroud) 假设有一个包含两列的数据框,其中col1表示组。
d = pd.DataFrame({'col1': ['a','a','a','a', 'a', 'b','b'], 'col2': ['nmh','ghb','dfe', 'dfe', 'kil', 'gtr','klm']})
Run Code Online (Sandbox Code Playgroud)
我想添加第三列,它使用 中的组col1和 中的条目col2,并添加一个线性顺序,如下所示:
order = [1,2,3,3,4, 1,2]
d['order'] = order
d
Run Code Online (Sandbox Code Playgroud)
col2将主要是唯一的,如果有任何重复order列应该重复订单号。
我用过groupby,rank没有用。通常提供method='first'给rank方法应该可以解决问题,但会出现错误。
注意: df 会大得多,对应于col1. 所以请提供一个可概括的答案。
我有一个需要排名的文件,但需要忽略指定的行。
这是一个例子。
A B C
INCLUDE ORDER RANK ORDER
1 1 1
0 2
0 6
1 7 7
1 3 3
0 5
1 4 4
Run Code Online (Sandbox Code Playgroud)
我需要忽略空格并从 A 列中出现 1 时开始排名。值从第 2 行开始。
所需的表:
A B C
INCLUDE ORDER RANK ORDER
1 1 1
0 2
0 6
1 7 4
1 3 2
0 5
1 4 3
Run Code Online (Sandbox Code Playgroud)
我已经完成=IF(A2 = 1,IF(COUNTIFS(A$2:A2,1,B$2:B2,) > RANK.EQ(B2,B$2:B2,0),RANK.EQ(B2,$B$2:$B$300,1)), " ")这将获得第一个表,但我需要第二个表有什么建议吗?
我有一张叫做Level的桌子.
id | level | points(minimum)
-------------------------
1 | 1 | 0
2 | 2 | 100
3 | 3 | 200
Run Code Online (Sandbox Code Playgroud)
假设我有189分,我如何检查用户在哪个级别?
编辑:
选择最佳答案.现在我通过在SELECT查询之前添加EXPLAIN来比较请求,我有这样的结果:
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
-------------------------------------------------------------------------------------------------------------
1 | SIMPLE | level | ALL | NULL | NULL | NULL | NULL | 8 | Using where
id | select_type | table | type | possible_keys | key | key_len | ref …Run Code Online (Sandbox Code Playgroud) 我有这张桌子:
id ref data
1 111 data1
2 111 data2
3 111 data3
4 111 data4
5 222 data1
6 222 data2
7 222 data3
8 333 data1
9 333 data2
Run Code Online (Sandbox Code Playgroud)
并且我想插入一个新字段,例如命令,其中对于每个ref,我将设置一个新月值.所以输出应该是:
id ref data order
1 111 data1 1
2 111 data2 2
3 111 data3 3
4 111 data4 4
5 222 data1 1
6 222 data2 2
7 222 data3 3
8 333 data1 1
9 333 data2 2
Run Code Online (Sandbox Code Playgroud)
我可以用简单的查询来做到这一点吗?
编辑
上面的例子只是一个例子.这是我在数据库上真正的表:
CREATE TABLE `items` …Run Code Online (Sandbox Code Playgroud) 我有一个网站,用户可以对网页上留下的评论进行评分.每个评论都有一个唯一的ID(例如402934)如果我希望用户能够拇指向上/向下翻阅所述评论我可以看到我如何制作一个简单的计数器代码来跟踪拇指向上和拇指的数量 - 但是如何确保每个用户只对所述评论进行一次排名.我打算创建一个数据库,每个注释编号作为一行,并且在该行中有一个排列它的所有用户的数组并且所有用户都对它进行了排名,但我感觉不是最好的方法.我的下一个想法是为每个用户创建一个表,然后有一个数组显示用户排名的所有评论.它可能会以这种方式运行得更快(例如,从用户的150个排名中检查评论的6050排名,但我仍然觉得有更好的方法......任何想法?
我想对数据框的一列进行排名,但我希望根据其顺序而不是按升序或降序对其进行排名.如下所示:
> test <- c(0,0,0,2,1,5,3)
Run Code Online (Sandbox Code Playgroud)
然后排名如下:
[1] 1 1 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
这样做最简单的方法是什么?先感谢您.