小编Sot*_*tos的帖子

将所有列除以第二列中的值 - 适用于所有行

我有这样的数据:

dput(tbl_data[1:5])
structure(list(Name = c("Mark", "Anders", "Tom", "Vin", "Marcel", 
"Tyta", "Gerta", "Moses", "Hank", "Rita", "Margary"), Col = c(1769380097.5, 
1444462500, 1499146687.5, 1276309375, 22279500, 3114023471, 2961012500, 
3978937423.5, 1703925000, 1838885550, 1483386250), dKO1 = c(1534931323.07692, 
1794881375, 2292661687.5, 855786250, 21915500, 3056061512.25, 
3581940000, 3766909703.25, 2043300000, 2135859875, 1482031250
), dKO2 = c(1628137500, 1781982737.5, 1659391250, 741220687.5, 
41242000, 2833327766.38514, 3675450000, 3592650662.5, 1586512500, 
1934575000, 1467271250), sdi1 = c(1545572702.88461, 1748600000, 
1745026687.5, 1556481250, NaN, 3551716021.25, 3108137500, 3718036445, 
1380278750, 2217526000, 1026813750)), .Names = c("Name", "Col", 
"dKO1", "dKO2", "sdi1"), row.names = c(29L, 30L, 1278L, …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
2
解决办法
4105
查看次数

Dummify字符列并查找唯一值

我有一个具有以下结构的数据帧

test <- data.frame(col = c('a; ff; cc; rr;', 'rr; a; cc; e;'))
Run Code Online (Sandbox Code Playgroud)

现在我想从中创建一个数据帧,其中包含测试数据帧中每个唯一值的命名列.唯一值是以';'结尾的值 角色,从空间开始,不包括空间.然后,对于列中的每一行,我希望用1或0填充虚拟列.如下所示

data.frame(a = c(1,1), ff = c(1,0), cc = c(1,1), rr = c(1,0), e = c(0,1))

  a ff cc rr e
1 1  1  1  1 0
2 1  0  1  1 1
Run Code Online (Sandbox Code Playgroud)

我尝试使用for循环和列中的唯一值创建一个df,但它变得很乱.我有一个可用的向量,包含列的唯一值.问题是如何创建1和0.我尝试了一些mutate_all()功能,grep()但这没用.

r dummy-variable

4
推荐指数
2
解决办法
1316
查看次数

将向量的每个元素添加到另一个向量

我有2个向量

x <- c(2,2,5)
y <- c(1,2)
Run Code Online (Sandbox Code Playgroud)

我想将向量的每个元素组合在一起得到

[1] 3 3 6 4 4 7
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

r vector add

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

矢量到块矩阵

我有一个给定的向量,并希望将其转换为某个块矩阵.考虑这个简单的例子:

k <- c(1,2,3)
a <- rep(apply(expand.grid(k, k), 1, prod), each=3)
a
[1] 1 1 1 2 2 2 3 3 3 2 2 2 4 4 4 6 6 6 3 3 3 6 6 6 9 9 9
Run Code Online (Sandbox Code Playgroud)

此向量应在以下形式的块矩阵中对齐:

rbind(
cbind(diag(a[1:3]), diag(a[4:6]), diag(a[7:9])),
cbind(diag(a[10:12]), diag(a[13:15]), diag(a[16:18]) ),
cbind(diag(a[19:21]), diag(a[22:24]), diag(a[25:27]) ) 
)

       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
 [1,]    1    0    0    2    0    0    3    0    0
 [2,]    0    1    0    0    2    0 …
Run Code Online (Sandbox Code Playgroud)

r vector matrix

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

列“ project”必须是一维原子向量或列表

我有一个称为df的数据框,我需要使用filter()。pls检查从数据框中过滤数据

我的数据框

Queue   project._id   project.ProjectName    project.Status  project.CreatedBy  project.Createdtime     X.gender

first     111              Travel                1               manchi         2017-04-24 18:50:27       male

last      111              2334                  1               mono             2017-04-24 18:50:27      Female

first     111              556                  1               gunal            2017-04-24 18:50:27       male

first     7888            classical             1               manchi            2017-04-24 18:50:27      Female
Run Code Online (Sandbox Code Playgroud)

我尝试使用dplyr通过以下代码过滤数据。

Finalfilter<-df%>% 
   filter(project.ProjectName == "Travel",Queue=="first")%>%
    select(X.gender.)
Run Code Online (Sandbox Code Playgroud)

我的预期结果是

Queue   project._id   project.ProjectName    project.Status  project.CreatedBy  project.Createdtime     X.gender

first     111              Travel                1               manchi         2017-04-24 18:50:27       male

first     111              556                  1               gunal            2017-04-24 18:50:27       male
Run Code Online (Sandbox Code Playgroud)

但是我低于错误,请帮助我解决此问题。

错误:列project必须是一维原子向量或列表

dput。

structure(list(Queue = c("first", "last", …
Run Code Online (Sandbox Code Playgroud)

r

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

data.table优化 - 条件求和

我正在尝试对data.table进行条件求和,并设法以杂乱的方式进行.我想知道是否可以更优雅地做到这一点?

考虑以下:

library(data.table)
stock_profile <- data.table(Pcode = c(123456L, 234567L, 345678L, 456789L, 567891L, 678912L, 789123L, 891234L, 912345L, 123456L, 234567L, 345678L, 456789L, 567891L, 678912L, 789123L, 891234L, 912345L), 
    Value = c(51.96, 89.64, 21.56, 56.04, 47.56,83.68, 42.21, 66.56, 62.72, 35.00, 3.40, 30.82, 59.83, 82.17, 14.02, 25.70, 81.38, 50.33), 
    Location = c("A", "A", "A", "A", "A", "A", "A", "A", "A","B", "B", "B", "B", "B", "B", "B", "B", "B"), 
    NoSales = c("","", "Y", "", "", "Y", "", "", "Y", "", "", "Y", "Y", "","", "", "Y", …
Run Code Online (Sandbox Code Playgroud)

optimization r data.table

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

填写缺少的日期范围

我有以下示例数据框:

Date_from <- c("2013-01-01","2013-01-10","2013-01-16","2013-01-19")
Date_to <- c("2013-01-07","2013-01-12","2013-01-18","2013-01-25")
y <- data.frame(Date_from,Date_to)
y$concentration <- c("1.5","2.5","1.5","3.5")
y$Date_from <- as.Date(y$Date_from)
y$Date_to <- as.Date(y$Date_to)
y$concentration <- as.numeric(y$concentration)
Run Code Online (Sandbox Code Playgroud)

这些是特定日期范围内重金属的测量浓度.但是,由于2013-01-07至2013-01-10和2013-01-12至2013-01-16之间存在差距,因此日期范围不连续.我需要检测这些间隙,在每个间隙后插入一行并用缺少的范围填充它.结果应如下所示:

Date_from    Date_to concentration
2013-01-01 2013-01-07           1.5
2013-01-08 2013-01-09            NA
2013-01-10 2013-01-12           2.5
2013-01-13 2013-01-15            NA
2013-01-16 2013-01-18           1.5
2013-01-19 2013-01-25           3.5
Run Code Online (Sandbox Code Playgroud)

r date

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

添加包含列名称的新列

我有这个df:

        A       B   C 
1       NA    100   NA
2      130     NA   NA
3       NA     NA   200
4      110     NA   NA
Run Code Online (Sandbox Code Playgroud)

我要去bind他们,删除它们,NA所以我得到一个单独的列与他们的价值观.

但我需要保留他们来自哪里的信息,所以我想添加一个新的列column_name,所以它会像这样:

      values  column_name 
1       130    A 
2       110    A
3       100    B
4       200    C
Run Code Online (Sandbox Code Playgroud)

有什么想法怎么做?

r

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

从元素列表到化学式

我有一个元素组合列表,每个元素都在它自己的行中.有时这些元素为零.

   C H N O S
1  5 5 0 0 0
2  6 4 1 0 1
3  4 6 2 1 0
Run Code Online (Sandbox Code Playgroud)

我需要将它们组合起来以便它们读取,例如C5H5,C6H4NS,C4H6N2O.这意味着对于任何值为"1"的元素,我只应该使用列名,对于值为0的任何元素,应该完全跳过该列.

我不确定从哪里开始.我可以添加一个新列,以便更容易地读取列,例如

   c C h H n N o O s S
1  C 5 H 5 N 0 O 0 S 0
2  C 6 H 4 N 1 O 0 S 1
3  C 4 H 6 N 2 O 1 S 0
Run Code Online (Sandbox Code Playgroud)

这样,我只需要输出为单个字符串,但我需要忽略任何零值,并删除元素名称后面的值.

r data-manipulation chemistry dataframe

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

如何创建正负序列

我目前正在研究 r 以使自己从头开始。试图创建一个序列

(-10,10,100,100,1000,1000)

我的第一个问题是如何创建一个在正负之间交替的序列

其次,我如何创建一个每 x 数量的数字乘以 10 的序列。

r sequence

4
推荐指数
2
解决办法
96
查看次数