小编lmo*_*lmo的帖子

如何将矢量分组到矢量列表?

我有一些看起来像这样的数据(例如假数据):

dressId        color 
6              yellow 
9              red
10             green 
10             purple 
10             yellow 
12             purple 
12             red 
Run Code Online (Sandbox Code Playgroud)

其中颜色是因子向量.不能保证该因子的所有可能水平实际上都出现在数据中(例如,颜色"蓝色"也可以是其中一个水平).

我需要一个矢量列表,将每件衣服的可用颜色分组:

[[1]]
yellow  

[[2]] 
red    

[[3]] 
green purple yellow 

[[4]] 
purple red 
Run Code Online (Sandbox Code Playgroud)

保留连衣裙的ID会很好(例如,这个列表是第二列的数据帧,ID是第一列),但不是必需的.

我写了一个循环,它遍历行的数据帧行,而下一个ID是相同的,它将颜色添加到矢量.(我确信数据按ID排序).当第一列中的ID更改时,它会将向量添加到列表中:

result <- NULL 
while(blah blah) 
{
    some code which creates the vector called "colors" 
    result[[dressCounter]] <- colors 
    dressCounter <- dressCounter + 1
}
Run Code Online (Sandbox Code Playgroud)

在努力获得所有必要的计数变量之后,我发现我不高兴它不起作用.第一次colors

[1] yellow
Levels: green yellow purple red blue
Run Code Online (Sandbox Code Playgroud)

并且它被强制转换成整数,所以result变成了2.

在第二个循环重复中,colors只包含红色,并result成为一个简单的整数向量[1] 2 4. …

grouping r list vector

7
推荐指数
3
解决办法
7119
查看次数

如何在不覆盖它的情况下附加到R中的现有文件?

我想写一个文件,然后在一个循环(在Windows机器上)附加几次.每次我追加它之后,我想关闭连接,因为我希望文件下沉到一个Dropbox帐户,这样我可以在其他计算机上打开它,同时代码正在运行,以检查日志文件的状态(注意这个条件使得这个问题不同于任何关于关于接收器,writeLines,write,cat等的问题.我试过了

#set up writing
  logFile = file("log_file.txt")
  write("This is a log file for ... ", file=logFile, append=FALSE)

for(i in 1:10){
    write(i, file=logFile, append=TRUE)
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过sink(file=logFile,append=TRUE); print(i); sink(); 在循环中也是cat.两种选择都不起作用.该文件仅显示i = 10,即循环的最后一次迭代.我注意到写文档中的以下句子.

"如果为TRUE,则数据x将附加到连接中."

以上是否意味着它不会附加到现有文件.

r

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

如何检查是否已经在Ubuntu中安装了R?

我是R的新手,我想我以前安装了R但不确定.

有没有办法知道你的系统中是否安装了R?

ubuntu r

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

摘要 quantreg backsolve 中的错误

当我在 R 中运行分位数回归时,使用quantreg包,然后运行summary(quantregObject),我收到此错误消息:

base::backsolve(r, x, k = k, upper.tri = upper.tri, transpose = transpose, : 'backsolve' 中的奇异矩阵中的错误。对角线 [1] 中的第一个零

任何建议我怎么能解决这个问题?

regression r package quantile quantreg

7
推荐指数
1
解决办法
2672
查看次数

错误:'car'的包或命名空间加载失败

我无法在R中加载汽车包.我尝试重新安装使用

install.packages("car",dependencies=TRUE)
Run Code Online (Sandbox Code Playgroud)

来自R和RStudio.我尝试quantreg按照另一篇文章中的建议进行安装,然后重新安装.安装似乎是成功的,但根本无法加载程序.

这是完整的错误:

loadNamespace出错(j < - i [[1L]],c(lib.loc,.libPaths()),versionCheck = vI [[j]]):没有名为'pbkrtest'的包
另外:警告信息:包'car'是在R版本3.2.3下构建的.
错误:'car'的包或命名空间加载失败

r install.packages

7
推荐指数
2
解决办法
3万
查看次数

是否有合理的方式来考虑列表索引?

理解下面mylist[2]mylist[[2]]下面之间差异的基本逻辑或哲学基础是什么?

理解单方括号与双方括号的简单逻辑方法是什么?

> mylist <- list(1, list("a","b","c"))

> mylist[2]
# [[1]]
# [[1]][[1]]
# [1] "a"

# [[1]][[2]]
# [1] "b"

# [[1]][[3]]
# [1] "c"

> mylist[[2]]
# [[1]]
# [1] "a"

# [[2]]
# [1] "b"

# [[3]]
# [1] "c"
Run Code Online (Sandbox Code Playgroud)

r list

7
推荐指数
1
解决办法
212
查看次数

执行数学运算后,在时钟时间内显示时间

我创建了从00:00:0023:00:00的时间序列.在总和小于或等于23:00:00之前,添加任意小时数都很容易.在总和超过23:00:00后,它开始显示天数的时间,这是非常直观的.但我希望输出在一个时钟时间内,无论我是减法还是加法

假设我想像下面这样做

library(chron)
times("23:00:00")+ times("01:00:00")
Time in days:
[1] 1 
Run Code Online (Sandbox Code Playgroud)

我想要的输出低于一.而不是得到我想要的日子

00:00:00 
Run Code Online (Sandbox Code Playgroud)

我也试过减法

times("00:00:00")- times("01:00:00")
[1] -0.04166667
Run Code Online (Sandbox Code Playgroud)

期望的输出

 "23:00:00"
Run Code Online (Sandbox Code Playgroud)

我也尝试使用POSIXct,但它在各种情况下都会出现各种错误

 as.POSIXct("00:00:00", format = "%H:%M:%S", tz = "UTC")
    [1] "2017-02-07 UTC" #Not printing time. Only dates 
Run Code Online (Sandbox Code Playgroud)

使用POSIXct减法

as.POSIXct("00:00:00", format = "%H:%M:%S", tz = "UTC") -as.POSIXct("01:00:00", format = "%H:%M:%S", tz = "UTC")
        Time difference of -1 hours
        Warning message:
        In 1:0:0 : numerical expression has 2 elements: only the first used
Run Code Online (Sandbox Code Playgroud)

使用POSIXct添加

as.POSIXct("23:00:00", format = …
Run Code Online (Sandbox Code Playgroud)

time datetime r time-series

7
推荐指数
1
解决办法
307
查看次数

如何在"R"中的foreach循环中导出多个函数或包

我试图通过使用doParallelR中的包来减少我的代码的运行时间.

我正在调用一个函数awareRateSIR,在这个函数的主体中使用了一些额外的包.我得到一些错误

找不到功能"vcount"和..

我知道vcount是包的功能,igraph即在使用awareRateSIR),但它不是唯一的一个.我怎么解决这个问题?我以为我应该传递我的函数中使用的所有包名,awareRateSIR但我不知道我怎么不能导出多个函数foreach或如何导出多个包名.

这是我的代码:

tp<-foreach(i=1:iter,  .inorder = FALSE, .export = "awareRateSIR",
          .packages = "igraph", .packages="doParallel")%dopar%{
tp <- awareRateSIR(graphContact, graphCom,state)
return(tp)
}
Run Code Online (Sandbox Code Playgroud)

如果我没有传递这些包,我将得到错误状态,如果我传递所有包,我会得到错误的一些函数是未知的:

foreach中的错误(i = 1:iter,.inorder = FALSE,.export ="awareRateSIR",:形式参数".packages"由多个实际参数匹配"

提前致谢

foreach r doparallel

7
推荐指数
1
解决办法
5170
查看次数

如何反转log2转换

我有这种形式的数据:

        ds           y
1   2015-12-31 51737806366
2   2016-01-01   451800500
3   2016-01-04    48503189
4   2016-01-06      221000
5   2016-01-07   542483038
6   2016-01-08   628189789
7   2016-01-09   556762005
8   2016-01-10   195672447
9   2016-01-11   279202668
10  2016-01-12   540234196
11  2016-01-13  3403591404
12  2016-01-14   610409176
Run Code Online (Sandbox Code Playgroud)

'y'列上的值表示收入,货币单位.我以原始形式对这些数据进行了探索性绘图,发现该图不太有用,数据的视觉效果不合适,所以为了改进我的可视化,我将一个log2()转换应用到了'y'列...它工作得很好:

        ds        y
1   2015-12-31 35.59050
2   2016-01-01 28.75111
3   2016-01-04 25.53158
4   2016-01-06 17.75369
5   2016-01-07 29.01500
6   2016-01-08 29.22663
7   2016-01-09 29.05249
8   2016-01-10 27.54387
9   2016-01-11 28.05674
10  2016-01-12 29.00901
11  2016-01-13 31.66441 …
Run Code Online (Sandbox Code Playgroud)

math logarithm r dplyr

7
推荐指数
1
解决办法
6121
查看次数

Pandas - 将匹配的列值与行对齐

我遇到了一个看似简单的问题,但我无法找到解决方案。也就是说,我有一个表,其中第一列包含所有可用应用程序的列表,而其他列代表用户及其拥有的应用程序列表:

在此输入图像描述

我正在尝试将表转换为 pandas DataFrame 并在第一列上对齐匹配值。所需的输出应如下所示:

在此输入图像描述

import pandas as pd

df = pd.read_excel('U:/Desktop/appdata.xlsx')

df.head(10)
Out[21]: 
  Applications User 1 User 2 User 3 User 4 User 5
0         App1   App1   App2   App1   App1   App2
1         App2   App3   App3   App2   App3   App3
2         App3  App10   App4   App7   App4   App4
3         App4    NaN   App5   App8   App5   App5
4         App5    NaN    NaN  App10   App6   App6
5         App6    NaN    NaN    NaN    NaN   App7
6         App7    NaN    NaN    NaN    NaN   App8
7         App8    NaN    NaN    NaN    NaN …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

6
推荐指数
1
解决办法
1597
查看次数