我有这样的数据:
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) 我有一个具有以下结构的数据帧
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()但这没用.
我有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)
我怎样才能做到这一点?
我有一个给定的向量,并希望将其转换为某个块矩阵.考虑这个简单的例子:
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) 我有一个称为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) 我正在尝试对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) 我有以下示例数据框:
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) 我有这个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)
有什么想法怎么做?
我有一个元素组合列表,每个元素都在它自己的行中.有时这些元素为零.
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 以使自己从头开始。试图创建一个序列
(-10,10,100,100,1000,1000)
我的第一个问题是如何创建一个在正负之间交替的序列
其次,我如何创建一个每 x 数量的数字乘以 10 的序列。
r ×10
vector ×2
add ×1
chemistry ×1
data.table ×1
dataframe ×1
date ×1
matrix ×1
optimization ×1
sequence ×1