我想打印数据表dt中除名为V3的列以外的所有列,但不想按数字而是按名称来引用它。这是我拥有的代码:
dt = data.table(matrix(sample(c(0,1),5,rep=T),50,10))
dt[,-3,with=FALSE] # Is this the only way to not print column "V3"?
使用data frame方法,可以通过以下代码完成此操作:
df = data.frame(matrix(sample(c(0,1),5,rep=T),50,10))
df[,!(colnames(df)%in% c
通过一个公共列合并两个data.tables,其中一个data.table中合并列是一个因素,而在另一个data.table中,合并列不会产生意外结果。没有引发任何警告或错误,该问题对所涉及的底层data.tables有奇怪的影响。
require(data.table)
##Create two tiny data.tables.
data <- data.table(Country=c("Afghanistan","Albania","Western Europe"),Value =c(1,2,100))
data
## Country
我正在寻找一种从数据表中选择行的有效方法,以便为特定列中的每个唯一值有一个有代表性的行。
让我举一个简单的例子:
require(data.table)
y = c('a','b','c','d','e','f','g','h')
x = sample(2:10,8,replace = TRUE)
z = rep(y,x)
dt = as.data.table( z )
我的目标是通过对z列中的每一个字母a-h取样一行来子集数据表dt。
我很难弄清楚如何开始将事务数据表合并到域数据表。我想将下面的分布数据表合并到部门数据表中,这样我就可以知道事务发生时涉及的部门的名称。在合并之后,我最终想要得到的是这样一个数据表:
PayeeName Department PaymentDT Amount
Bob Modified Name 2016-01-01 5
Tracy Payables 2015-01-01 34
Tom Postal 2015-01-01 87
下面是一些与我正在使用的格式类似的示例数据。
library(data.table)
我有一个包含3列的数据表: ID、Type和Count。对于每个ID,我希望得到这个ID中顶部2计数的Type,并将结果扁平化为一行。例如,如果数据表如下所示:
ID Type Count
A 1 8
B 1 3
A 2 5
A 3 2
B 2 1
B 3 4
然后,我希望输出为两行,如下所示:
ID Top1Type Top1TypeCount Top2Type Top2TypeCount
A 1 8 2 5
我有一个大型数据表,如下所示:
id var1 var2
1 1 a
2 2 d
3 6 d
4 4 b
5 6 d
6 8 a
我需要根据var2中的值在var1中指定一个类别。对于每个类别中包含的var1值,类别不遵循任何顺序。例如:
lista <- c(1,5,7)
listb <- c(4,9)
listd <- c(2,6)
我尝试了两种方法,但都没有成功。使用which函数:
which: DT[which(var1 %in% lista), var2 := "a"]等用于listb和listd。
另一个R问题。已经浏览了并看到了这样的解决方案:
但不幸的是,当他们离我很近的时候,我不知何故遗漏了一些我所理解的东西。
我的初始数据表包括一个包含结果的数据表和一个带有标准的数据表。两个表之间有几个列是常见的。下面是一个示例(这两个表都有更多的列,但它们在两个表之间并不常见)。
Results
ID Region Locale Medium Name Method
3324 Agate Zone C water Cadmium Z
2432 Gneiss Zone B
如何创建包含嵌套data.table的data.tables?
示例
set.seed(7908)
dt <- data.table(x=1:5)[,list(y=letters[1:x],z=sample(1:100,x)),by=x]
dt
## x y z
## 1: 1 a 13
## 2: 2 a 27
## 3: 2 b 87
## 4: 3 a 85
## 5: 3 b 98
## 6: 3 c 1
## 7: 4 a 53
## 8: 4 b 81
## 9: 4 c 64
## 10: 4 d 45
## 11: 5 a 28
## 12
我正在连接数据表以创建一个新的数据表,
代码:
var row = from r0w1 in dt_vi.AsEnumerable()
join r0w2 in dt_w.AsEnumerable()
on r0w1.Field<int>("ID") equals r0w2.Field<int>("iD")
join r0w3 in dt_re.AsEnumerable()
on r0w1.Field<int?>(&
我构建了一个data.table dataframe dt1,类似于:
State Bounced Opened Delivered
FL 2 1 0
NY 0 1 1
我还有另一个data.table dt2,它的总价值是:
State Total
NY 2
FL 3
我希望找到第一个数据表中每列的百分比频率:
State Bounced Opened Delivered
FL 66.66 33.33 0
NY 0 50 50
如果我简单地* 100并将所有第一个数据表除以第二个数