R語言 如何保留大于或小于特定數(shù)值的行
如下所示:
newdata<-subset(x, x$var > 某一數(shù)字)
x為矩陣 var是其中的一個變量
補充:r語言 循環(huán)次數(shù)超過了50這個最大值_錯過了520還可以一起過兒童節(jié),如何用R語言‘?dāng)]'一個文字跑馬燈去表白...
引言
和大家分享一下如何用R語言來寫一個文字跑馬燈吧。這個文字跑馬燈寫起來基本不費時間,在辦公室摸一下魚大概就夠了。
正文
這個文字跑馬燈我準(zhǔn)備按照面向?qū)ο缶幊虂韺?。因為,面向?qū)ο缶蜁袑ο蟆6?,這個東西寫出來就是拿給你們?nèi)ケ戆椎摹?/p>
首先我們定義一個基類,這個基類要具有像PPT一樣的逐頁播放文字的功能。
#' @title projector
projector <- R6::R6Class(
classname = "projector",
public = list(
initialize = function(sildes) { # 構(gòu)造函數(shù)
private$slides <- sprintf("r%s",sildes) # 給每頁文字的開始加上'r'字符以覆蓋上一頁
private$length <- base::length(private$slides) # 記錄所有的播放頁數(shù)量
private$position <- 0 # 初始播放位置為第一頁之前
private$slide <- private$slides[private$position]
},
nextslide = function(){ # 播放下一頁
private$position <- private$position + 1 # 獲取下一頁位置
if ( private$position > private$length ){ # 播放到最后一頁后回到第一頁
private$position <- private$position - private$length
}
private$slide <- private$slides[ private$position ] # 設(shè)置當(dāng)前播放頁為下一頁
base::cat(private$slide) # 播放當(dāng)前播發(fā)頁
},
autoplay = function(fps = 10){ # 自動播放,播放速率每秒10頁
while(T){ # 無限循環(huán),可以用for改寫控制循環(huán)次數(shù)
self$nextslide() # 播放下一頁
base::Sys.sleep(1/fps) # 休眠控制播放速率
}
}
),
private = list(
slide = NA,# 當(dāng)前播放頁
slides = c(), # 所有的播放頁
length = 0,# 播放頁的總數(shù)
position = 0# 當(dāng)前播放位置
)
)
#' @test
player <- projector$new(c("我是第一頁","我是第二頁","我是第三頁"))
player$nextslide() # 播放下一頁
player$nextslide()
player$nextslide()
player$nextslide()
player$autoplay(3) # 以每秒三張的速率播放,可以使用 Ctrl+C 組合鍵 跳出

利用這個文字PPT播放器,我們只要設(shè)置好播放頁就可以實現(xiàn)文字跑馬燈了。比如:
player2 <- projector$new( c( "我是第一頁 ", "是第一頁 我", "第一頁 我是", "一頁 我是第", "頁 我是第一", " 我是第一頁", " 我是第一頁 ", " 我是第一頁 ", " 我是第一頁 ", "我是第一頁 " # 最后一頁的下一頁是第一頁,讓播放頁閉環(huán)以到達(dá)流暢的視覺效果 ) ) player2$autoplay(3)

當(dāng)然我們不需要那么傻的的每次都手動設(shè)置播放頁。接下來,我們從PPT文字播放器這個基類派生一個類,這個派生類新增了根據(jù)跑馬燈文字自動設(shè)置播放頁的功能。
#' @title scroller
scroller <- R6::R6Class("scroller",
inherit = projector,
public = list(
initialize = function(film, width = 50 ) { # 重載基類的構(gòu)造函數(shù),根據(jù)輸入的文字和寬度自動設(shè)置播放頁
film <- paste0( base::strrep(" ",width), film,base::strrep(" ",width), collapse="" )
slides <- rep( base::strrep(" ",width) , nchar(film)-width+1 )
for( i in 1:length(slides) ){
slides[i] <- substr(film,i,i+width-1)
}
super$initialize(slides)
}
)
)
#' @test
boy <- scroller$new("你可真是個小可愛! 不如... 和我在一起吧^_^",50) # 設(shè)置播放頁的寬度為50
boy$autoplay(10) # 以每秒10頁的速率播放
girl <- scroller$new("哈哈哈*—* 我就知道你喜歡我! 好吧,我就勉強答應(yīng)你咯~",50) # 設(shè)置播放頁的寬度為50
girl$autoplay(10) # 以每秒10頁的速率播放


以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
R語言讀取excel數(shù)據(jù)的方法(兩行命令)
這篇文章主要介紹了R語言讀取excel數(shù)據(jù)的方法(兩行命令),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
R語言中corrplot標(biāo)題居中及eps格式輸出
由于論文的需要,很多R語言繪圖需要eps格式矢量圖的方式進行輸出,同時最近也需要繪制相關(guān)性圖,因此決定寫個博客作為記錄,有需要的朋友可以借鑒參考下2021-11-11
R語言繪制數(shù)據(jù)可視化小提琴圖Violin plot with dot畫法
這篇文章主要為大家介紹了R語言繪制數(shù)據(jù)可視化小提琴圖Violin plot with dot畫法的示例詳解有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-02-02

