Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在R中修改数据帧以添加带有if条件的列时出错

在R中修改数据帧以添加带有if条件的列时出错
EN

Stack Overflow用户
提问于 2020-01-30 19:25:07
回答 1查看 70关注 0票数 2

我正在尝试更改以下数据帧,以便在末尾添加一列,该列根据日期将每行分类为"Period_1“、"Period_2”或"Other“。

我已经复制了下面的代码

代码语言:javascript
运行
AI代码解释
复制
# create the start and end dates of the two periods
SampleOneStartDate <- ymd(20020101)
SampleOneEndDate <- ymd(20080101)
SampleTwoStartDate <- ymd(20100101)
SampleTwoEndDate <- ymd(20181130)

# creates the sample of countries and places them in groups (BRICS, etc)
cur.sample <-
  read_rds(paste0(getwd(), "/settings/Equities.rds")) %>% 
  mutate(Ticker = paste0(Ticker, " Index"))

cur.sample.tickers <- cur.sample %>% pull(Ticker)

data.cur <-
  read_rds(paste0(getwd(), "/Data/Cncy.rds")) %>% 
  mutate(Period = ifelse(date >= SampleOneStartDate & date <= SampleOneEndDate, "Period_1",
                         ifelse(date >= SampleTwoStartDate & date <= SampleTwoEndDate, "Period_2", "Other"))) %>% 
  filter(Period %in% c("Period_1", "Period_2")) %>% filter(Ticker %in% cur.sample.tickers) 

当我运行代码块的第二部分时,出现以下错误

代码语言:javascript
运行
AI代码解释
复制
Warning messages:
1: In ifelse(date >= SampleOneStartDate & date <= SampleOneEndDate,  :
  Incompatible methods ("Ops.factor", ">=.Date") for ">="
2: In ifelse(date >= SampleOneStartDate & date <= SampleOneEndDate,  :
  Incompatible methods ("Ops.factor", "<=.Date") for "<="
3: In ifelse(date >= SampleTwoStartDate & date <= SampleTwoEndDate,  :
  Incompatible methods ("Ops.factor", ">=.Date") for ">="
4: In ifelse(date >= SampleTwoStartDate & date <= SampleTwoEndDate,  :
  Incompatible methods ("Ops.factor", "<=.Date") for "<="

我已经复制了下面的数据帧cur.sample

代码语言:javascript
运行
AI代码解释
复制
structure(list(Country = structure(c(2L, 15L, 8L, 4L, 16L, 11L, 
1L, 3L, 5L, 12L, 17L, 18L, 13L, 10L, 9L, 6L, 7L, 14L, 19L), .Label = c("Argentina", 
"Brazil", "Chile", "China", "Colombia", "Czech", "Hungary", "India", 
"Korea", "Malaysia", "Mexico", "Peru", "Philipines", "Poland", 
"Russia", "South Africa", "Taiwan", "Thailand", "Turkey"), class = "factor"), 
    Name = structure(c(1L, 12L, 15L, 18L, 9L, 6L, 11L, 7L, 3L, 
    5L, 19L, 16L, 14L, 4L, 10L, 13L, 2L, 17L, 8L), .Label = c("BOVEPSA", 
    "BUX Index", "COLCAP Index", "FTSE KLCI", "IGBVL Index", 
    "IPC", "IPSA Index", "Istambul", "JSE Top 40", "KOPSI Index", 
    "MERVAL Index", "MOEX", "PSE PX", "PSEi Index", "SENSEX", 
    "SET 50", "SIX", "SSE Composite Index", "TWSE Index"), class = "factor"), 
    Ticker = c("MXBR Index", "MXRU Index", "MXIN Index", "MXCN Index", 
    "MXZA Index", "MXMX Index", "MXAR Index", "MXCL Index", "MXCO Index", 
    "MXPE Index", "TAMSCI Index", "MXTH Index", "MXPH Index", 
    "MXMY Index", "MXKR Index", "MXCZ Index", "MXHU Index", "MXPL Index", 
    "MXTR Index"), Group = structure(c(2L, 2L, 2L, 2L, 2L, 4L, 
    4L, 4L, 4L, 4L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L), .Label = c("Asia", 
    "BRICS", "Europe", "Latin America"), class = "factor")), class = "data.frame", row.names = c(NA, 
-19L))

这是我的数据集data.str的一小段代码。实际的报价器中有多个报价器和截止到2019年的日期

代码语言:javascript
运行
AI代码解释
复制
    date          Ticker      Name           Value
1   2000-01-03  MXBR Index  Brazil_Index    874.0292
2   2000-01-04  MXBR Index  Brazil_Index    816.4275
3   2000-01-05  MXBR Index  Brazil_Index    831.9147
4   2000-01-06  MXBR Index  Brazil_Index    827.5026
5   2000-01-07  MXBR Index  Brazil_Index    843.3013
6   2000-01-10  MXBR Index  Brazil_Index    879.8027
7   2000-01-11  MXBR Index  Brazil_Index    856.7554
8   2000-01-12  MXBR Index  Brazil_Index    852.7734
9   2000-01-13  MXBR Index  Brazil_Index    885.2533
10  2000-01-14  MXBR Index  Brazil_Index    907.2839
11  2000-01-17  MXBR Index  Brazil_Index    929.7444
12  2000-01-18  MXBR Index  Brazil_Index    925.2186
13  2000-01-19  MXBR Index  Brazil_Index    902.8753
14  2000-01-20  MXBR Index  Brazil_Index    890.9248
15  2000-01-21  MXBR Index  Brazil_Index    883.0727
16  2000-01-24  MXBR Index  Brazil_Index    889.2529
17  2000-01-25  MXBR Index  Brazil_Index    887.0005
18  2000-01-26  MXBR Index  Brazil_Index    889.8742
19  2000-01-27  MXBR Index  Brazil_Index    886.3568
20  2000-01-28  MXBR Index  Brazil_Index    858.4258
21  2000-01-31  MXBR Index  Brazil_Index    839.7178
22  2000-02-01  MXBR Index  Brazil_Index    842.6707
23  2000-02-02  MXBR Index  Brazil_Index    852.6062
24  2000-02-03  MXBR Index  Brazil_Index    886.2512
25  2000-02-04  MXBR Index  Brazil_Index    911.1760
26  2000-02-07  MXBR Index  Brazil_Index    918.9617
27  2000-02-08  MXBR Index  Brazil_Index    945.2223
28  2000-02-09  MXBR Index  Brazil_Index    926.6250
29  2000-02-10  MXBR Index  Brazil_Index    925.2223
30  2000-02-11  MXBR Index  Brazil_Index    904.5837
31  2000-02-14  MXBR Index  Brazil_Index    879.1468
32  2000-02-15  MXBR Index  Brazil_Index    885.6335
33  2000-02-16  MXBR Index  Brazil_Index    896.0780
34  2000-02-17  MXBR Index  Brazil_Index    894.2178
35  2000-02-18  MXBR Index  Brazil_Index    876.0983
36  2000-02-21  MXBR Index  Brazil_Index    880.9504
37  2000-02-22  MXBR Index  Brazil_Index    866.5338

关于如何调试ifelse命令,有人能给我指出正确的方向吗?

提亚

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-30 20:13:24

我们只需要将'date‘更改为Date类,它应该可以工作

代码语言:javascript
运行
AI代码解释
复制
data.cur$date <- as.Date(dta.cur$date)

因为错误主要是因为在需要Date类的情况下处理factor列比较

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59993159

复制
相关文章
Hazelcast集群服务(1)——Hazelcast介绍
    “分布式”、“集群服务”、“网格式内存数据”、“分布式缓存“、“弹性可伸缩服务”——这些牛逼闪闪的名词拿到哪都是ITer装逼的不二之选。在Javaer的世界,有这样一个开源项目,只需要引入一个jar包、只需简单的配置和编码即可实现以上高端技能,他就是 Hazelcast。
随风溜达的向日葵
2018/08/15
5.8K0
Hazelcast集群服务(1)——Hazelcast介绍
Hazelcast集群服务(2)——Hazelcast基本配置
    在入门及使用案例一文介绍了什么是Hazelcast,并展示了一个简单的使用例子。原理大家都懂了,后面的篇章会给兄弟们更多干货。
随风溜达的向日葵
2018/08/15
3.6K0
Hazelcast集群服务(3)——集群功能详解
    在前2篇博文中,介绍了 Hazelcast的基本原理 和 Hazelcast基本配置。后续的博文会逐一介绍Hazelcast的主要功能组件。本篇将详细说明Hazelcast集群组建、集群数据通信相关的内容,大家可以用来当做使用Hazelcast的帮助文档、或进行技术决策分析的指导文档。
随风溜达的向日葵
2018/08/15
2.9K0
Hazelcast集群服务(4)——分布式Map
    在第一篇介绍Hazelcast的文章已经提到,Hazelcast为Java中绝大部分数据结构提供了分布式实现。我们常用的Map、List、Queue等数据结构可以用Hazelcast的实现类在多个集群节点之间共享数据。本篇将介绍Map的分布式实现方式和使用方法,后续的博文再简要说明Set、Queue、List、Ringbuffer、Topic、Lock等数据结构的配置和使用方法。如果你对Hazelcast的基础知识还不太了解,建议先阅读本人前面关于Hazelcast介绍的三篇博文——Hazelcast介绍、Hazelcast基本配置、Hazelcast集群功能详解。
随风溜达的向日葵
2018/08/15
3.2K0
聊聊hazelcast的PhiAccrualFailureDetector
本文主要研究一下hazelcast的PhiAccrualFailureDetector
code4it
2019/04/30
7620
聊聊hazelcast的PhiAccrualFailureDetector
Hazelcast4.2.2 集群测试百万数据下的故障转移
本文测试在Hazelcast集群中,写入百万级别的数据,对其故障转移过程进行测试。
冬天里的懒猫
2021/11/03
2.2K0
hazelcast初探
Hazelcast作为一个高度可扩展的数据分发和集群平台,提供了高效的、可扩展的分布式数据存储、数据缓存。Hazelcast是开源的,在分布式技术方面,Hazelcast提供了十分友好的接口供开发者选择,如Map,Queue,ExecutorService, Lock和Jcache。 Hazelcast的稳定性很高,分布式应用可以使用Hazelcast进行存储数据、同步数据、发布订阅消息等。Hazelcast是基于Java开发的,其客户端有Java, C/C++, .NET以及REST。Hazelcast同时也支持memcache协议。它很好的支持了Hibernate,可以很容易的在当今流行的数据库系统中应用。 如果你在寻找一个基于内存的、可扩展的以及对开发者友好的NoSql,那么Hazelcast是一个很不错的选择!
lyb-geek
2018/09/27
2.4K0
PHP 获取指定 URL 页面中的所有链接
以下代码可以获取到指定 URL 页面中的所有链接,即所有 a 标签的 href 属性:
Z4
2020/04/22
7.7K0
聊聊hazelcast的PhiAccrualFailureDetector
本文主要研究一下hazelcast的PhiAccrualFailureDetector
code4it
2019/05/14
5420
CSS中的计数器
     <p>Place the flour in a large bowl, make a well in the centre and pour in the milk and eggs. Give the liquid mixture a quick whisk before incorporating the flour. Continue to whisk until you have a smooth batter.</p>
大江小浪
2018/07/25
1.3K0
UE4 从类获取场景中的所有对象
static void GetAllActorsOfClass ( const UObject * WorldContextObject, TSubclassOf< AActor > ActorClass, TArray< AActor * > & OutActors ) //需要include的头文件 #include "Kismet/GameplayStatics.h" //使用方法 TArray ArryActors; UGameplayStatics::GetAllActorsOfClass
Ning@
2021/11/10
6.2K0
获取Qt支持的所有字体
获取Qt支持的所有字体: QFontDatabase database; for (QString family : database.families()) { qDebug() << "Family:" << family; } 获取Qt支持的所有中文字体: for (QString chineseFamily : database.families(QFontDatabase::SimplifiedChinese)) { qDebug() << "Chinese Family:" <
Qt君
2023/03/17
2.5K0
获取Qt支持的所有字体
在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径
在项目编译成 dll 之前,如何分析项目的所有依赖呢?可以在在项目的 Target 中去收集项目的依赖。
walterlv
2020/02/10
3.5K0
WPF 获取应用的所有窗口
在 WPF 可以通过 Application.Current.Windows 列举应用的所有窗口
林德熙
2022/08/04
1.8K0
WPF 获取应用的所有窗口
在 WPF 可以通过 Application.Current.Windows 列举应用的所有窗口
林德熙
2019/03/13
2.1K0
在Emlog博客程序中获取当前分类的所有子分类
在Emlog博客程序中获取当前分类的所有子分类,具体方法如下 方法一:在模板文件module.php中加入如下代码 <?php //widget:分类 function sy_sort(){globa
用户8099761
2023/05/10
5480
VBA代码:获取并列出工作表中的所有批注
在使用Excel工作表时,我们往往会对某些单元格插入批注来解释其中的数据,用户也可能会插入批注来写下他们的建议。如果你的工作表中有很多批注,而你不想逐个点开查看,那么可以将所有批注集中显示在工作表中。
fanjy
2022/11/16
2.5K0
遍历map修改map中的value(map获取所有的value)
public static void main(String[] args) {
全栈程序员站长
2022/07/25
5.9K0
获取字符串内双引号中的所有内容
测试字符串 String str = "[\"内容\",\"标题\"]"; 编码如下: package Action; import java.util.regex.Matcher; import java.util.regex.Pattern; public class demo { public static void main(String[] args) { String str = "[\"内容\",\"标题\"]"; Pattern p = Pattern.compile("\"
红目香薰
2022/11/29
4.5K0
获取字符串内双引号中的所有内容
获取Delphi所有类的类信息
{ Delphi遍历进程中所有Class的TypeInfo,即便是在implementation中的class或者其他 class的private的子class. 一般普通EXE中的TypeInfo存放在PAGE_EXECUTE_*的内存中,而BPL则存放在PAGE_READ_WRITE的内存中. 所以我们要做的是遍历可执内存的内存片,然后找出TypeInfo的特征. 这里我是只找Class的类型信息,特征是tkClass,classname合法, 沿着typedata中的
战神伽罗
2019/07/24
1.8K0

相似问题

Hazelcast :关闭hazelcast集群中的特定成员

22

确保所有分区都加载在Hazelcast集群中。

12

Hazelcast:禁用集群

140

Hazelcast中的集群合并通知

117

限制Hazelcast集群中的成员

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文