在下面的示例中,我需要将一个列表赋给data.table的变量code,以便将值list(11,22)赋值给dt$code。我该怎么做呢? dt <- data.table(1:3)
dt$code <- list()
dt[V1==2, code:=list(11,22)] # does not work
dt[V1==2, code:=.(list(11,22))] # does not work 我的问题比之前的帖子更简单、更简短。感谢您的回答: dt[V1==2, code:=list(list((list(11,22)))] # works !
我知道向量可以表示n元组,向量列表可以表示一组n元组。一个简单的算法是
AxB<-list();k<-1L
for(i in seq_along(A))for(j in seq_along(B)){AxB[[k]]<-c(A[[i]],B[[j]]);k<-k+1L}
有没有更优雅的数据结构和算法来实现这一点?
我试图根据同一表中单元格A的值更新表中的单元格B。要筛选要更新的行,我使用grepl将单元格A与来自列表/表/向量或其他外部源的字符串列表进行比较。对于单元格A与搜索条件匹配的所有行,我希望更新单元格B以表示"xxxx“。我需要对表中的所有行执行此操作。
到目前为止,我有这样的东西,其中cat1是一个有字符串可搜索的列表。
for (x in 1:length(cat1)){
data %<>% mutate(Cat = ifelse(grepl(cat1[i],ItemName),"xxx",Cat))
}
我愿意以任何更好的方式来完成这一任务。我尝
您好,我是R的新手,对于一个学校项目,我正在尝试创建一个列表列表,我可以通过索引访问这些列表,并将其追加到列表中。就像这样
aList[1] = A, B, C
aList[1] returns [1] A, B, C
aList[1] += D
aList[1] returns [1] A, B, C, D
aList[2] = 1, 2, 3
aList[2] returns [2] 1, 2, 3
aList returns [1] A, B, C, D
[2] 1, 2, 3
但是,我不确定我是否使用了正确的数据类型(当然也不是正确的语法),因
我有一个数据集中,在一个列中,我有一个人的名字,在另一个列中,我有她为某项服务支付的金额。我想要建立一个名单,所有的人的名字,由他们的总金额,无论他们所做的服务。示例:
Ann 100
John 200
Matt 150
John 150
John 150
Ann 300
Erik 150
===========
John 500
Ann 400
Matt 150
Erik 150
我认为这需要查找个人姓名的所有重复实例,然后将支付的值存储在列中,最终汇总所有内容。问题是我的名单太大了,无法检查个人的名字。也就是说,我不
我对R和数据表非常陌生,所以我的问题可能听起来很明显,但我在这里搜索了类似的问题,但无论如何都找不到解决方案。 因此,最初,我有一个数据表,其中一行包含字段,这些字段有许多由&连接在一起的数据值(实际上这些值都是单独的单词)。我还有一个单词列表( list )。这个列表很大,有38000个不同的单词。但出于示例的目的,让我们假设它很小。 list <- c('word1','word2,'word3') 我需要的是过滤数据表,以便我只有包含单词列表中至少一个单词的行。 我通过&取消了数据连接,并创建了一个列表 fields_wit
以以下代码片段为例:
// x is a global vector object that holds values of type string as follows, vector<string> x
// x is filled/populated via the function Populate_x(y,z);
Populate_x(y,z);
for (auto i : x)
{
string v = check(i);
Populate_x(v,v);
}
我的问题是,当从for循环中调用Populate_x(v,v)时,如何在基于上述for循环的范
假设我有以下data.frame和以下data.table:
DF = data.frame(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
使用data.frame,我可以根据逻辑向量选择列,如下所示:
DF[,c(TRUE,TRUE,FALSE)]
结果是:
x y
1 a 1
2 a 3
3 a 6
4 b 1
使用这个虚拟数据集
setDT(mtcars_copy<-copy(mtcars))
new_col<- "sum_carb" # for dynamic column referencing
为什么第一例有效,而第二例无效?
# Case 1 - Works fine
mtcars_copy[,eval(new_col):=sum(carb)] # Works fine
# Case 2:Doesnt work
aggregate_mtcars<-mtcars_copy[,(eval(new_col)=sum(carb))] # error
aggreg
我在data.table中有数据,如下所示:
#Load in example data
library(jsonlite)
library(data.table)
json<-'[{"id":"a","group":"foo","value":2.7408},{"id":"b","group":"foo","value":6.5785},{"id":"c","group":
我试图用R写一个函数,它返回一个k列的矩阵,其中k是一个函数参数。
这些列是在函数内部由循环形成的,我使用了(Assign(粘贴),i)来命名它们为col.1、.、col.i。到目前为止还不错,代码可以正确地生成列向量。
函数中已经定义的是向量,col.2到col.k。X也被定义为等于col.1。
然后,我尝试在函数中使用一个循环,用于cbind()列,如下所示:
for (i in 2:k){
X <- cbind(X, col.i)
}
错误消息是"object 'col.i‘not“。
我没有太多的编码经验,所以这可能是初学者的错误,但我会感谢任何建议。
将字符向量和列名作为列的列表传递给data.table?
我希望能够使用data.table生成R中的一个列的子集,我可以在前面确定其中的一些列,并将预定的列表作为字符向量传递,然后与静态列列表相结合。
也就是说,考虑到这一点:
a <- 1:4
b <- 5:8
c <- c('aa','bb','cc','dd')
e <- 1:4
z <- data.table(a,b,c,e)
我想这么做:
z[, list(a,b)]
它产生这个输出:
a b
1: 1 5
2: 2 6
3: 3
我有一个有200行和150列的数据框架。在这些列中,我希望更改大约50行和100列的NAs。
下面是我的数据框架(一小部分)的一个例子:
>df
Bird Mammal Type
1 NA 1 A
2 1 0 B
3 1 0 A
4 0 NA A
5 NA 1 A
6 0 0 B
7 0 0 A
8 NA NA A
9
当i包含NA时,不返回该特定行。我不确定这是不是故意的行为,或者是吗?
require(data.table)
x = data.table(a=c(NA, 1:3, NA))
x[a>0]
a
1: 1
2: 2
3: 3
x[!(a>0)]
a
1: NA
2: NA
x[a<0]
Empty data.table (0 rows) of 1 col: a
x[!(a<0)]
a
1: NA
2: 1
3: 2
4: 3
5: NA
> sessionInfo()
R version 2.15
我正在尝试理解DataFrame列类型。当然,DataFrame不是一个物化的对象,它只是一组Spark的指令,将来要转换成代码。但我认为,这个类型列表代表了在执行操作时JVM中可能出现的对象类型。
import pyspark
import pyspark.sql.types as T
import pyspark.sql.functions as F
data = [0, 3, 0, 4]
d = {}
d['DenseVector'] = pyspark.ml.linalg.DenseVector(data)
d['old_DenseVector'] =
我编辑了我的问题
我使用下面的代码行创建了一个由78个对象的名称组成的列表,我希望在代码中使用这些对象。最后,我想在我的工作中或多或少地将相同的功能应用于所有这些功能。
total = len.part * len.report # This is equal to 78
nam.value <- list()
# Reporters and Partners are the name of countries
# Values is the name of my big dataframe which I am subsetting
for(i in Reporters) {
f