第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

分配有:=FROM函數(shù)的data.table對(duì)象未打印

分配有:=FROM函數(shù)的data.table對(duì)象未打印

犯罪嫌疑人X 2019-07-13 15:39:08
我想修改data.table在一個(gè)功能范圍內(nèi)。如果我使用:=函數(shù)中的特性,結(jié)果僅用于第二次調(diào)用。請(qǐng)看下面的插圖:library(data.table)mydt <- data.table(x = 1:3, y = 5:7)myfunction <- function(dt) {    dt[, z := y - x]    dt}當(dāng)我只調(diào)用函數(shù)時(shí),表就不會(huì)打印(這是標(biāo)準(zhǔn)行為)。但是,如果我保存返回的data.table在一個(gè)新的對(duì)象中,它不是在第一個(gè)調(diào)用時(shí)打印出來(lái)的,而是為第二個(gè)調(diào)用而打印的。myfunction(mydt)  # nothing is printed   result <- myfunction(mydt) result  # nothing is printedresult  # for the second time, the result is printedmydt                                                                     #    x y z# 1: 1 5 4# 2: 2 6 4# 3: 3 7 4 你能解釋一下為什么會(huì)發(fā)生這種情況嗎?如何防止?
查看完整描述

2 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

我很抱歉,如果我不應(yīng)該在這里發(fā)布一些東西,這不是一個(gè)答復(fù),但我的帖子太長(zhǎng),不能發(fā)表評(píng)論。

我想指出的是,Janosdivenyi的解決方案是添加一個(gè)尾隨[]dt并不總是像下面這樣給出預(yù)期的結(jié)果(即使使用data.table 1.9.6或1.10.4)。

下面的例子表明,如果dt是函數(shù)中的最后一行,可以在沒(méi)有尾隨的情況下獲得所需的行為。[],但是如果dt不位于函數(shù)的最后一行,則為拖尾。[]才能得到想要的行為。

第一個(gè)例子顯示,沒(méi)有尾隨[]在……上面dt我們得到了預(yù)期的行為dt在函數(shù)的最后一行

mydt <- data.table(x = 1:3, y = 5:7)myfunction <- function(dt) {
  df <- 1
  dt[, z := y - x]}myfunction(mydt)  # Nothing printed as expectedmydt  # Content printed as desired##    
  x y z## 1: 1 5 4## 2: 2 6 4## 3: 3 7 4

添加拖尾[]在……上面dt出其不意

mydt <- data.table(x = 1:3, y = 5:7)myfunction <- function(dt) {
  df <- 1
  dt[, z := y - x][]}myfunction(mydt)  # Content printed unexpectedly##    x y z## 1: 1 5 4## 2: 2 6 4## 3: 
  3 7 4mydt  # Content printed as desired##    x y z## 1: 1 5 4## 2: 2 6 4## 3: 3 7 4

移動(dòng)df <- 1在DT之后沒(méi)有尾隨[]出其不意

mydt <- data.table(x = 1:3, y = 5:7)myfunction <- function(dt) {
  dt[, z := y - x]
  df <- 1}myfunction(mydt)  # Nothing printed as expectedmydt  # Nothing printed unexpectedly

移動(dòng)df <- 1在DT后面有一個(gè)尾隨[]給出預(yù)期的行為

mydt <- data.table(x = 1:3, y = 5:7)myfunction <- function(dt) {
  dt[, z := y - x][]
  df <- 1}myfunction(mydt)  # Nothing printed as expectedmydt  # Content printed as desired##    
  x y z## 1: 1 5 4## 2: 2 6 4## 3: 3 7 4


查看完整回答
反對(duì) 回復(fù) 2019-07-13
  • 2 回答
  • 0 關(guān)注
  • 423 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)